2012-07-25 146 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是要检查窗口

相关问题