我有兩個.net 2 winforms,每個都有自己的項目。項目1是主要形式,項目2是兒童形式。現在我想知道如果主窗體不再活動,如何讓子窗體自行閉合。winform自動關閉,如果主窗體關閉
在退出時殺死子表單不起作用,因爲主表可以被任務管理器殺死。
我有兩個.net 2 winforms,每個都有自己的項目。項目1是主要形式,項目2是兒童形式。現在我想知道如果主窗體不再活動,如何讓子窗體自行閉合。winform自動關閉,如果主窗體關閉
在退出時殺死子表單不起作用,因爲主表可以被任務管理器殺死。
如果我理解正確,您稱之爲「子窗體」實際上是另一個在獨立進程中運行的WinForms應用程序?另外,我從你的「因爲主窗體可以被任務管理器殺死」評論)認爲你希望退出行爲對主應用程序被強行殺死的情況具有適應性。
一種方法是讓'孩子應用程序'收聽'主應用程序'的Process.Exited
事件,如果它觸發則退出。
我想這將是這個樣子:
public Form1()
{
InitializeComponent();
// You need to figure out how best to do this part.
// Also, what to do if the main-app isn't already running.
var mainAppProcess = Process.GetProcessesByName("MainApp").First();
mainAppProcess.EnableRaisingEvents = true;
// Close the form when the other process exits.
mainAppProcess.Exited +=
delegate { BeginInvoke(new Action(Close)); };
}
您需要處理主窗體的OnClosing事件,您可以在其中關閉任何子窗體。您需要在main中具有子窗體的成員變量。
是的,這是正確的 – 2010-11-19 18:44:02