2012-07-25 121 views
0

在我的應用程序中,如果打開它,我想通過編碼手動按下另一個窗口中的按鈕來關閉特定窗口。如何檢查窗口是否打開? 在此先感謝。如何檢查窗口是否打開並關閉它在C#

+3

這是你自己的程序中的一個窗口你在做什麼檢查?在其他一些程序中?還是你辦公室的窗戶?請提供一些細節。 – 2012-07-25 09:32:42

+0

@Hans Kesting: - 它是我程序的一個窗口。 – 2012-07-25 09:33:55

+0

你的意思是你的應用程序有兩個窗口,當你在一個窗口中單擊一個按鈕時,另一個窗口應該關閉。這是你的問題嗎? – Cdeez 2012-07-25 09:43:35

回答

6

你真的應該被跟蹤這種事情你自己的應用程序&hellip內;

但是,因爲它聽起來像你不是,你可以依靠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. 
    } 
} 
1
while(true) 
{ 
    SearchAndDestroy("MyProgProc"); 
} 


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

I.E你的程序有兩種形式。 從另一個表單中調用關閉表單。 添加按鈕備考:

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

private void CloseFormB(object sender, eventArgs e) 
{ 
     FormB.ActiveForm.Dispose(); 
} 
+0

: - 我想關閉一個特定的窗口時,我在另一個窗口中按下按鈕。 – 2012-07-25 09:38:38

0

或者您可以使用像

var isWindowOpen = Application.Current.Windows.Cast<Window>().Any(x => (x == WINDOW)); 

窗口LINQ是要檢查窗口

相關問題