我添加了一个resize事件到我的窗口小部件之一,它看起来像这样:.NET调整大小事件:获取旧的大小?
void glControl_Resize(object sender, EventArgs e) {
有没有一种方法可以让我得到widget的老大小(调整前)?也许我可以投e
东西,会给我更多的信息?或者我应该在这个事件中保存它?
我添加了一个resize事件到我的窗口小部件之一,它看起来像这样:.NET调整大小事件:获取旧的大小?
void glControl_Resize(object sender, EventArgs e) {
有没有一种方法可以让我得到widget的老大小(调整前)?也许我可以投e
东西,会给我更多的信息?或者我应该在这个事件中保存它?
是的,只需在类字段中跟踪旧尺寸就是简单的解决方案。例如:
Size mOldSize;
private void glControl_Resize(object sender, EventArgs e) {
if (mOldSize != Size.Empty && mOldSize != glControl.Size) {
// do something...
}
mOldSize = glControl.Size;
}
按照惯例,您应该添加一个OnResizing
事件,该事件在即将更改但未更改时触发,然后在调整大小后触发OnResize
。在OnResizing
事件中,您将从EventArg
获得旧值。
编辑:
您是创建自己的事件还是触发其中一个包含的控件?
如果你正在做你自己的活动,你可以从EventArg
派生出来,并使其包含ResizeEventArg
,其中包括你想要的东西的大小。
我会使用和OnResizing
事件的ResizeEventArg
,并且仍然遵循我之前所说的。
或者如果您知道它是哪种类型的控件,则可以将Object sender
转换为该类型,然后读取该属性。
我没有创建自己的活动。它没有“OnResizing”事件?似乎没有什么“OnResizing”事件?我在主窗体上看到一个'ResizeBegin',但这是一个'Tao.Platform.Windows.SimpleOpenGlControl',它似乎也没有。猜猜我被骗了。不管怎么说,还是要谢谢你。很好供将来参考。 – mpen 2010-01-14 00:29:22
如果您希望**之前的事件**实际上Windows调用了“WndProc”,并捕获正确的消息。我不确定究竟是哪一个。但这是在调整大小之前获得**的唯一方法。 – n4pgamer 2014-01-18 17:53:52