在我的应用程序中,当我通过编码手动按下另一个窗口中的按钮时,我希望关闭一个特定窗口,如果它已打开。如何检查窗口是否打开? 提前致谢。
答案 0 :(得分: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.
}
}
答案 1 :(得分:1)
while(true)
{
SearchAndDestroy("MyProgProc");
}
public SearchAndDestroy(string programname)
{
foreach (Process _proc in Process.GetProcesses()) {
if (_proc.ProcessName.StartsWith(name))
_proc.Kill();
}
}
I.E您的计划有两种形式。 从另一个表单中调用close表单。 添加按钮到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();
}
答案 2 :(得分:0)
或者你可以使用linq like
var isWindowOpen = Application.Current.Windows.Cast<Window>().Any(x => (x == WINDOW));
WINDOW是您要检查的窗口