在模式对话框上显示MessageBox后,ALT + TAB不起作用

6 c# windows modal-dialog messagebox

在模态对话框上显示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是Main表单,它将是第一个应用程序表单.

重现所需问题的步骤:

  1. 打开Form_A,它是MDI容器
  2. 单击按钮将打开Form_B
  3. 再次单击Form_B上的按钮,它将打开Form_C,它将有两个按钮(两个按钮都来自基类P1Form.cs和P2Form.cs)
  4. 单击Form_C的任何按钮,将打开消息框.

问题: 现在通过Alt + Tab切换窗口.您将无法在切换窗口中看到当前的窗口图标.

我试过的其他选择......

  1. 如果我使用Form.show()而不是Form.ShowDialog,那么它工作正常.
  2. 如果我在当前类中编写所有messageBox编码而不是在基类中编写,那么它工作正常.

任何人都可以建议我如何解决这个问题而不做上面提到的两个我已经尝试过的替代方案?

ale*_*exm 1

尝试设置从 Form_B(父)到 Form_C(子)的父子关系:

Form_C f = new Form_C();
f.ShowDialog(this);
Run Code Online (Sandbox Code Playgroud)