10

別のプロセスのメイン ウィンドウの上に WinForms モーダル フォームを表示することは可能ですか?

たとえば、私の WinForms アプリケーションは、PID x を持つ別のプロセスのメイン ウィンドウ上でモーダルな 1 つのフォームで構成されています。

4

1 に答える 1

19

次のように、ダイアログとして表示できます。

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

可能であれば、これはどのように機能するかですが、私にはうまくいかないようです。

このリンクは、このテーマに関するもう少し多くの情報を提供する可能性があります。子プロセスウィンドウをプロセスでモーダルに表示するにはどうすればよいですか?

于 2013-02-20T10:07:59.377 に答える