【问题标题】:ALT + TAB is not working after displaying MessageBox on modal dialog在模式对话框上显示 MessageBox 后 ALT + TAB 不起作用
【发布时间】:2009-09-10 13:50:07
【问题描述】:

在模态对话框中显示 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 是主窗体,将是申请的第一个窗体。

重现所需问题的步骤:

  1. 打开作为 MDI 的 Form_A 容器
  2. 单击按钮将打开 表格_B
  3. 再次单击 Form_B 上的按钮 这将打开 Form_C 将有两个按钮(两个按钮都来自基类 P1Form.cs 和 P2Form.cs)
  4. 点击Form_C的任意按钮 将打开消息框。

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

我尝试过的替代方案...

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

任何人都可以建议我如何在不执行上述两种我已经尝试过的替代方案的情况下解决这个问题?

【问题讨论】:

  • 您的帖子的标记很好,对于新用户来说也是如此。竖起大拇指!

标签: c# windows modal-dialog messagebox


【解决方案1】:

尝试建立从Form_B(父)到Form_C(子)的父子关系:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 2016-09-25
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多