现有应用程序的重新非模态形式

时间:2008-12-02 05:59:57

标签: c# modal-dialog

我希望能够在现有的应用程序中显示非模态表单。目前我可以做类似的事情:

myform.ShowDialog(handleToApp);

但是这将创建一个模式形式的应用程序和我正在寻找的东西不是模态的,所以当表单失去焦点时,它不会打破控制流程并且纠缠用户不会闭合。

有谁知道我是如何做我正在寻找的东西?

2 个答案:

答案 0 :(得分:2)

我找到了我要找的东西,你必须做一个看起来像这样的课:

public class MapinfoWindowHandle : System.Windows.Forms.IWin32Window
    {
        private IntPtr handle;
        public MapinfoWindowHandle(IntPtr hWnd)
        {
            handle = hWnd;
        }

        #region IWin32Window Members

        IntPtr System.Windows.Forms.IWin32Window.Handle
        {
            get { return handle; }
        }

        #endregion
    }

然后你可以这样做:

IntPtr windowhandle = new IntPtr(hWnd);
MyForm.Show(new MapinfoWindowHandle(windowhandle));

答案 1 :(得分:-1)

一个简单的myForm.Show()怎么样?