0

我的 Win Forms 应用程序:

我的 WinForms 应用程序有两种形式。Form1 有一个打开 Form2 的按钮,两个表单都有自己单独的 MenuStrip。

复制场景:

表单启动,一切正常。MenuStrip 一键显示其底层的 MenuStripItems。打开第二个表单时,该表单上的所有内容也只需单击一下即可。关闭第二个窗体并单击第一个窗体的 MenuStrip 后,没有任何反应。需要再次单击才能打开 MenuStrip。此外,当打开第二个窗体时,在 MenuStrip 上的以下单击不会执行任何操作。再次单击需要打开 MenuStrip。请注意,第二个表单是在每次显示时构建的。

到目前为止,我已经尝试过:

  • 第二个表单关闭后立即将焦点(使用 Focus() 和 Activate())设置到 MenuStrip(不起作用)
  • 创建我自己的 MenuStrip 并重载 WndProc、OnClick、OnVisible 等以设置焦点(无效)并模拟第二次 OnClick(无效)。

我也不认为它与焦点相关,因为在单击之前 Focused 属性为 true 时问题仍然存在。

这个问题的另一个方面是,当我在 Windows 7/8 上运行我的应用程序时,它似乎运行良好。在 Windows Server 2008 R2 上运行应用程序时,MenuStrips 总是需要在第二次显示窗体时双击。两台机器都使用 .NET framework 4.5

4

0 回答 0