我添加了一個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