0

私のアプリケーションでは、特定のウィンドウが開いている場合、コーディングによって手動で別のウィンドウのボタンを押したときに、特定のウィンドウを閉じたいと考えています。ウィンドウが開いているかどうかを確認する方法は? 前もって感謝します。

4

3 に答える 3

7

アプリケーション内でこの種のことを自分で追跡する必要があります…

しかし、あなたはそうではないように思えるので、WPF に頼ることができます。コレクションを通じて公開されている、アプリケーションで開いているすべてのウィンドウを追跡するApplication.Current.Windowため、このコレクションを反復処理して、関心のあるタイプのウィンドウに一致するものを探すことができます。

例えば:

foreach (var wnd in Application.Current.Windows)
{
    if (wnd is MyWindow)
    {
        // We found one!
        //
        // Close it or do something else interesting here.
    }
}
于 2012-07-25T09:44:45.973 に答える
1
while(true)
{
    SearchAndDestroy("MyProgProc");
}


public SearchAndDestroy(string programname)
    {
     foreach (Process _proc in Process.GetProcesses()) {
                if (_proc.ProcessName.StartsWith(name))
                _proc.Kill();
            }
    }

つまり、プログラムには 2 つの形式があります。別のフォームからフォームを閉じることを呼び出します。ボタンを formA に追加します。

private void button_click(object sender, eventArgs e)
{
     FormB.ActiveForm.Disposed+= new EventHandler(CloseFormB)
}

private void CloseFormB(object sender, eventArgs e)
{
      FormB.ActiveForm.Dispose();
}
于 2012-07-25T09:36:42.483 に答える