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

时间:2009-09-10 13:50:08

标签: 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. 打开作为MDI的Form_A 容器
  2. 点击按钮,将打开 Form_B
  3. 再次单击Form_B上的按钮 这将打开Form_C 将有两个按钮(两个按钮都来自基类P1Form.cs和P2Form.cs)
  4. 单击Form_C的任何按钮 将打开消息框。
  5. 问题: 现在通过Alt + Tab切换窗口。您将无法在切换窗口中看到当前的窗口图标。

    我尝试的替代选项......

    1. 如果我使用Form.show()代替Form.ShowDialog,那么它可以正常使用。
    2. 如果我在当前类中编写所有messageBox编码而不是在基类中编写,那么它可以正常工作。
    3. 任何人都可以建议我如何在不同时执行我已经尝试的上述替代方案的情况下解决此问题?

1 个答案:

答案 0 :(得分:1)

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

Form_C f = new Form_C();
f.ShowDialog(this);
相关问题