C# .NET Compact Framework-不带ShowDialog的模式表单

C# .NET Compact Framework-不带ShowDialog的模式表单,c#,.net,winforms,windows-mobile,compact-framework,C#,.net,Winforms,Windows Mobile,Compact Framework,有没有一种方法可以在不调用ShowDialog metod的情况下显示模态形式?通过显示模态表单,我的意思是表单覆盖当前表单,并阻止用户输入到表单。要显示的表单是非全屏的MessageBox样式表单 谢谢 Dominik我假设您可以将“对话框”窗体设置为保持在顶部(最顶部的属性),然后禁用主窗体以防止输入 这只是一个局部解决方案,因为主窗体仍然能够集中、关闭等。您需要自己处理所有这些情况,以防止它们 您不想使用ShowDialog有什么特殊原因吗?您可以尝试这样做: MyForm frm

有没有一种方法可以在不调用ShowDialog metod的情况下显示模态形式?通过显示模态表单,我的意思是表单覆盖当前表单,并阻止用户输入到表单。要显示的表单是非全屏的MessageBox样式表单

谢谢


Dominik

我假设您可以将“对话框”窗体设置为保持在顶部(最顶部的属性),然后禁用主窗体以防止输入

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


您不想使用ShowDialog有什么特殊原因吗?

您可以尝试这样做:

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

不使用
ShowDialog()
有几个原因,主要问题是向其他应用程序分配任务时,返回到所述应用程序的任务将显示父窗体,以使窗体在任务管理器中实际获得自己的任务。实际上,您无法在父窗体上执行任何操作,因为它拒绝输入,但您无法访问打开的窗口,因为它是一个单独的进程。
Show(form)
重载在compact framework上不可用。相反,您必须将
Owner
属性设置为所属表单,然后调用
Show()