在我的应用程序中,当我通过编码手动按下另一个窗口中的按钮时,我想关闭一个特定窗口(如果它已打开)。如何检查窗口是否打开?提前致谢。
问问题
9413 次
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();
}
}
IE 你的程序有两种形式。从另一个表单调用关闭表单。向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 回答
0
或者,您可以使用 linq 之类的
var isWindowOpen = Application.Current.Windows.Cast<Window>().Any(x => (x == WINDOW));
WINDOW 是您要检查的窗口
于 2017-09-13T09:18:17.920 回答