Winforms 应用程序';停用';事件

Winforms 应用程序';停用';事件,winforms,Winforms,我正在寻找类似于“Form.Deactivate”事件的东西,但每个应用程序都有。如果在我的主窗体上使用Form.Deactivate事件,则即使在我打开以我的主窗体为父窗体的模式对话框时,也会触发此事件 总之,我需要一个在我的应用程序被停用时触发的事件。这是一个奇怪的遗漏,但很容易修复。将其粘贴到启动窗体中: protected void OnActivateApp(bool activate) { Console.WriteLine("Activate {0}", activate);

我正在寻找类似于“Form.Deactivate”事件的东西,但每个应用程序都有。如果在我的主窗体上使用Form.Deactivate事件,则即使在我打开以我的主窗体为父窗体的模式对话框时,也会触发此事件


总之,我需要一个在我的应用程序被停用时触发的事件。

这是一个奇怪的遗漏,但很容易修复。将其粘贴到启动窗体中:

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);
}

这是一个奇怪的遗漏,但很容易修复。将其粘贴到启动窗体中:

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);
}

您将如何响应此条件?这将提供一个良好的起点。我将开始使用“FileSystemWatcher”组件查看一些文件夹。您将如何响应此条件?这将提供一个良好的起点。我将开始使用“FileSystemWatcher”组件查看一些文件夹。我认为本例中存在win32错误。如果我通过单击任务栏(我的应用程序)最小化我的应用程序,该应用程序似乎仍处于激活状态。这个问题能解决吗?我试着解决就行了。确保实际上有另一个应用程序可以获得焦点。使用Resize事件检查WindowsState以检测最小化窗口的用户。我认为在这种情况下存在win32错误。如果我通过单击任务栏(我的应用程序)最小化我的应用程序,该应用程序似乎仍处于激活状态。这个问题能解决吗?我试着解决就行了。确保实际上有另一个应用程序可以获得焦点。使用Resize事件检查WindowsState以检测最小化窗口的用户。