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

在模式对话框上显示MessageBox后,ALT + TAB键不工作…

我有三个项目(P1,P2和P3)在一个解决scheme文件下。 P1包含P1Form.cs,P2包含P2Form.cs。

这些文件的细节如下:

P1Form.cs包含一个显示MessageBox.Show()方法的消息框的button。 P2Form.cs包含一个显示MessageBox.Show()方法的消息框的button。

P3项目包含Form_A,Form_B和Form_C三个表单。 Form_A是MDI容器,并有一个button,以Form_B的子窗体的forms打开。 Form_B也有一个button,从ShowDialog()方法打开Form_C作为模式对话框。

Form_Cinheritance自P2Form.cs,P2Form.csinheritance自P1Form.cs。 Form_A.cs是主要的forms,将是第一个应用程序的forms。

重现所需问题的步骤:

  1. 打开作为MDI容器的Form_A
  2. 点击将打开Form_B的button
  3. 再次单击Form_B上的button,该button将打开Form_C,该Form_C将具有两个button(两个button来自基类P1Form.cs和P2Form.cs)
  4. 单击Form_C中将打开消息框的任何button。

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

我尝试的替代选项…

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

任何人都可以build议我怎么才能解决这个问题,而不做两个上面提到的替代品,我已经试过了?

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

 Form_C f = new Form_C(); f.ShowDialog(this);