在模态对话框中显示MessageBox后无法使用ALT + TAB切换窗口...
我有一个解决方案文件,其中包含三个项目(P1、P2和P3)。P1包含P1Form.cs,P2包含P2Form.cs。
这些文件的详细信息如下:
P1Form.cs包含一个按钮,该按钮从MessageBox.Show()
方法显示消息框。
P2Form.cs包含一个按钮,该按钮从MessageBox.Show()
方法显示消息框。
项目P3包含3个表单Form_A、Form_B和Form_C。 Form_A是MDI容器,具有一个按钮,该按钮将Form_B作为其子表单打开。 Form_B还有一个按钮,该按钮从ShowDialog()方法打开Form_C作为模态对话框。
Form_C继承自P2Form.cs,而P2Form.cs则继承自P1Form.cs。 Form_A.cs是主窗体,将成为应用程序的第一个窗体。
重现问题的步骤:
- 打开Form_A,即MDI容器
- 单击按钮,它将打开Form_B
- 再次单击Form_B上的按钮,它将打开Form_C,Form_C将具有两个按钮(这些按钮都来自基类P1Form.cs和P2Form.cs)
- 单击Form_C的任何按钮,它将打开消息框。
问题: 现在通过Alt + Tab切换窗口。您将无法在切换窗口时看到当前窗口的图标。
我尝试使用的替代选项...
- 如果我使用
Form.show()
而不是Form.ShowDialog
,那么它可以正常工作。 - 如果我在当前类中编写所有MessageBox代码,而不是在基类中编写,则它可以正常工作。
有人能建议我如何解决这个问题,而不进行上述已经尝试过的两个替代方案吗?