c# - 将非模态形式重新赋予现有应用程序

标签 c# modal-dialog

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

myform.ShowDialog(handleToApp);

但是这会创建一个模态表单,它是应用程序的父级,而我真正在寻找的不是模态的东西,所以当表单失去焦点时,它不会破坏控制流,也不会纠缠用户不在关闭。

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

最佳答案

我找到了我要找的东西,你必须创建一个如下所示的类:

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));

关于c# - 将非模态形式重新赋予现有应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/333171/

相关文章:

javascript - 无法关闭 ng-bootstrap 模式

javascript - 将 JQuery 对话框置于前面

jquery - 我怎样才能摆脱 jquery 模式对话框上的关闭按钮

c# - VS2010中文件不存在异常

iOS 透明 View Controller

C# 和 Windows 资源管理器的上下文菜单

c# - ClosedXML:导出到 Excel 不下载文件 MVC 4

javascript - 如何在页面上的多个按钮上获得 1 个模态?

c# - Microsoft Avro 序列化程序正在处理提供的模式

c# - JavaScript 中的 SHA256Cng