我在其中一个小部件中添加了一个resize事件,如下所示:
void glControl_Resize(object sender, EventArgs e) {
有没有办法可以获得小部件的旧尺寸(在调整大小之前)?也许我可以将e
投射给能给我更多信息的东西?或者我应该在那次活动中保存它?
答案 0 :(得分:13)
是的,只是在类字段中跟踪旧尺寸就是一个简单的解决方案。例如:
Size mOldSize;
private void glControl_Resize(object sender, EventArgs e) {
if (mOldSize != Size.Empty && mOldSize != glControl.Size) {
// do something...
}
mOldSize = glControl.Size;
}
答案 1 :(得分:2)
按照惯例,您应该添加一个OnResizing
事件,该事件在即将更改但未更改时触发,然后在调整后调整OnResize
。您将从EventArg
事件中的OnResizing
获取旧值。
编辑:
您是在创建自己的事件还是触发其中一个包含的控件?
如果您正在进行自己的活动,可以从EventArg
派生,并制作类似ResizeEventArg
的内容,其中包含您想要的内容。
我会在ResizeEventArg
和Resize
事件中使用OnResizing
,并且仍然按照我之前的说法进行操作。
或者如果您知道它是哪种控件,您可以将Object sender
转换为该类型,然后阅读该属性。