表单激活在同一个编译 exe 中停止工作

Form activation stops work in same compilation exe

我在 Form1_MouseHover 事件中有 winfoms window this.Activate();:

private void Form1_MouseHover(object sender, EventArgs e) 
{ 
       this.Activate();
}

我已经从工作室构建了项目 exe,表单激活与 MouseHover 一起工作。

然后我关闭 VS,然后从 bin 文件夹打开 exe,激活方式相同。

我没有做任何修改,也没有重新编译exe,我第二次打开exe,激活有效,但不知何故更慢,我关闭它并再次打开,激活无效。

首先我想,那是我的 Visual Studio-15 没有编译更新的代码,但看起来有些不同,因为功能的变化发生在相同的情况下,而不是重新编译 exe,而且我'我们添加了额外的代码,首先检查编译中是否存在更新,以及触发特定事件。程序已更新,事件已存在。第一次或多次打开表单时,激活停止工作,但在从 VS

构建后始终有效

Form.Activate 的 documentation 是这样说的:

如果这是活动应用程序,激活表单会将其置于最前面,或者如果这不是活动应用程序,它会闪烁 window 标题。

我会假设当你第一次使用 VS 时 运行 它应用程序被认为是活动应用程序但是当你 运行 它来自资源管理器时它不是活动的 window.

我做了一个快速测试,运行 它在 VS 中,它像你说的那样工作,切换了焦点。当我从资源管理器中 运行 它时,它只是闪烁了任务栏。