你如何创建一个非模态最顶层的对话框,它只是WinForms中父表单的最顶层?

时间:2009-03-23 20:31:42

标签: c# winforms dialog topmost non-modal

为“关于”对话框考虑这一点,但我确信它适用于其他地方(例如搜索框)

对不起,如果这是一个骗局,但我找不到这个或如何清楚地说明它的最后一部分只是在父母之上。如何制作始终位于父表单之上的表单,但它是非模态的,但不会掩盖其他应用程序?

2 个答案:

答案 0 :(得分:9)

尝试此操作打开对话框:

FindDialog fd = new FindDialog();
fd.Show(this);

关键是分配对话框的所有者。

答案 1 :(得分:0)

不确定你的意思;除非应用程序是单线程的,否则Form.ShowDialog只是关于父项而不是应用程序的模态。

例如,我制作了一个应用程序来测试它,其组织方式如下:

的MainForm: 2个按钮,每个按钮开始一个创建frmDialog1并调用ShowDialog

的线程

frmDialog1: 单个按钮,它创建一个frmDialog2并在其上调用ShowDialog。

frmDialog2: 什么都不做(即空白)

当它们全部运行时,我可以访问/拖动mainform。只有当我没有点击显示对话框2的按钮时,我也可以使用frmDialog1(两个版本)执行相同的操作。