在MDI應用程序中,Form類可以使用哪個事件來檢測應用程序何時變爲活動狀態?當應用程序變爲活動時檢測
我試過Form.Acivated事件,但只有當窗體被激活時纔會發生,而不會在應用程序獲得焦點時發生。
在MDI應用程序中,Form類可以使用哪個事件來檢測應用程序何時變爲活動狀態?當應用程序變爲活動時檢測
我試過Form.Acivated事件,但只有當窗體被激活時纔會發生,而不會在應用程序獲得焦點時發生。
這是獲取Activated事件的MDI父窗體。您可以在您的子窗體的Load事件中訂閱該事件。要小心,您必須確保您在孩子關閉時取消訂閱活動,否則您將泄露子窗體實例。使它看起來像這樣:
protected override void OnLoad(EventArgs e) {
var main = this.MdiParent;
main.Activated += main_AppActivated;
this.FormClosed += (o, ea) => main.Activated -= main_AppActivated;
}
void main_AppActivated(object sender, EventArgs e) {
// Etc...
}
您是否嘗試過GotFocus事件?
雖然WPF has such a notion,WinForms並不是我所知;你需要使用Form級別的事件(比如前面的答案中的GotFocus)。
是的,它只在創建表單時提出一次。 – 2010-04-11 02:37:37