2010-11-19 11 views
0

私は2つの.net 2つのwinformを持っていますが、それぞれに独自のプロジェクトがあります。プロジェクト1はメインフォームで、プロジェクト2は子フォームです。メインフォームがもはやアクティブでなくなった場合、子フォームを自己に近づける方法を知りたいと思います。メインフォームが閉じている場合、winform auto close

終了時に子フォームを強制終了しません。タスクマネージャによってメインフォームが強制終了される可能性があるためです。

+0

を –

答えて

1

私が正しく理解している場合、「子フォーム」と呼ばれるものは実際には別のWinFormsアプリが別のプロセスで実行されていますか?

さらに、main-appが強制終了された場合に、元の動作が回復するようにするために、「メインフォームがタスクマネージャによって削除される可能性があります」というコメントから取ります。

「メインアプリ」の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)); }; 
} 
2

子フォームを閉じることができるメインフォームのOnClosingイベントを処理する必要があります。メインフォームには、子フォームのメンバー変数が必要です。

関連する問題