gpt4 book ai didi

c# - WinForms:在其他应用程序的主窗口上显示表单模式

转载 作者:太空狗 更新时间:2023-10-29 20:59:00 25 4
gpt4 key购买 nike

是否可以在另一个进程的主窗口上显示 WinForms 模态表单?

例如,我的 WinForms 应用程序包含一个窗体,该窗体在 PID x 的另一个进程的主窗口上是模态的。

最佳答案

您可以将其显示为对话框,如下所示:

Form1 frm = new Form1();
frm.ShowDialog(this);
frm.Dispose();

你传递了当前的 IWin32Windowform 你想成为所有者,所以如果你通过点击父窗体的按钮调用它,只需传递通过this

您希望能够为另一个进程获取 IWin32Window,这是可能的,但我不知道是否将表单显示为模态。

var proc = Process.GetProcesses().Where(x => x.ProcessName == "notepad").First();
IWin32Window w = Control.FromHandle(proc.MainWindowHandle);

using (Form1 frm = new Form1())
{
frm.ShowDialog(w);
}

如果可能的话,这就是它的工作方式,但是,它似乎对我不起作用。

此链接可能会提供有关该主题的更多信息:How can I make a child process window to appear modal in my process?

关于c# - WinForms:在其他应用程序的主窗口上显示表单模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14977076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com