应用程序“停用"事件
问题描述:
我正在寻找类似于 'Form.Deactivate' 事件但每个应用程序的东西.如果我在我的 MainForm 上使用 Form.Deactivate 事件,即使我打开一个以我的 MainForm 为父级的模态对话框,这个事件也会被触发.
I'm looking for something similar with 'Form.Deactivate' event but per application. If I use Form.Deactivate event on my MainForm this event is fired even when I open a modal dialog that has as parent my MainForm.
总而言之,当我的应用程序被停用时,我需要触发一个事件.
In conclusion I nedd an event that is fired when my application was deactivated.
答
这是一个奇怪的遗漏,但很容易修复.将此粘贴到您的启动表单中:
It is an odd omission but easily fixed. Paste this in your startup form:
protected void OnActivateApp(bool activate) {
Console.WriteLine("Activate {0}", activate);
}
protected override void WndProc(ref Message m) {
// Trap WM_ACTIVATEAPP
if (m.Msg == 0x1c) OnActivateApp(m.WParam != IntPtr.Zero);
base.WndProc(ref m);
}