2010-11-17 43 views
3

有没有一种方法可以显示没有ShowDialog metod调用的模态窗体?通过显示一个模态窗体,我的意思是窗体覆盖当前窗体并阻止用户输入到缓冲窗体。要显示的窗体是不是全屏的MessageBox样式窗体。.NET Compact Framework - 没有ShowDialog的模态窗体

感谢

多米尼克

回答

1

我会假设你可以设置“对话框”的形式留在上面(TopMost属性),然后禁用的主要形式,以防止输入。

这只是一个部分的解决方案,因为主窗体仍然能够被聚焦,关闭等。您将需要自己处理所有这些情况,以防止它们。

是否有任何特殊原因不想使用ShowDialog?

+0

有几个原因不使用'的ShowDialog()',主要的问题是任务到任务回说,应用程序将显示父其它应用形式为实际在任务管理器中获得自己的任务。实际上,您无法对父窗体执行任何操作,因为它拒绝输入,但您无法进入打开的窗口,因为它是一个单独的过程。 – 2013-12-18 06:44:29

0

你可以试着这样做:

MyForm frm = new MyForm(); // this would be your modeless dialog 
    frm->show(this);   // "this" being the instance that invokes it. 
+1

紧凑框架上不提供'Show(Form)'重载。相反,您必须将'Owner'属性设置为拥有的表单,然后调用'Show()'。 – 2013-12-18 06:46:04