在MDI应用程序中哪个事件可以使用子类Form类来检测应用程序何时变为活动状态?
我尝试了Form.Acivated事件,但只有在激活表单时才会发生,而在应用程序获得焦点时则不会。
答案 0 :(得分:2)
获取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...
}
答案 1 :(得分:1)
您是否尝试过GotFocus活动?
答案 2 :(得分:1)
虽然WPF has such a notion,WinForms并不是我所知的;你需要使用表单级事件(比如早期答案中的GotFocus)。