在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