別のプロセスのメイン ウィンドウの上に WinForms モーダル フォームを表示することは可能ですか?
たとえば、私の WinForms アプリケーションは、PID x を持つ別のプロセスのメイン ウィンドウ上でモーダルな 1 つのフォームで構成されています。
別のプロセスのメイン ウィンドウの上に WinForms モーダル フォームを表示することは可能ですか?
たとえば、私の WinForms アプリケーションは、PID x を持つ別のプロセスのメイン ウィンドウ上でモーダルな 1 つのフォームで構成されています。
次のように、ダイアログとして表示できます。
Form1 frm = new Form1();
frm.ShowDialog(this);
frm.Dispose();
現在のパスを渡すIWin32Window
かform
、所有者になりたいので、たとえばボタンをクリックして親フォームから呼び出す場合は、をパススルーし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);
}
可能であれば、これはどのように機能するかですが、私にはうまくいかないようです。
このリンクは、このテーマに関するもう少し多くの情報を提供する可能性があります。子プロセスウィンドウをプロセスでモーダルに表示するにはどうすればよいですか?