现需要在打开其中一个窗体的时候将其他的窗体关闭,如何做?而且本窗口不能被多次打开,而W0窗体我还要用来做键盘 子窗体只能打开一个,互斥。
有没人搞过,我现在焦头烂额啊
3 个解决方案
#1
不是主窗体W0都把它关掉~
private void CCForm()
{
int n = Application.Current.Windows.Count;
ArrayList FormNameList = new ArrayList();
for (int a = 0; a < n; a++)
{
FormNameList.Add(Application.Current.Windows[a].Name);
}
for (int a = 0; a < n; a++)
{
for (int i = 0; i < Application.Current.Windows.Count; i++)
{
string x = Application.Current.Windows[i].Name;
if (x != "主窗体W0") Application.Current.Windows[i].Close();
}
}
}
#2
应该这样就行了!
private void CCForm()
{
int n = Application.Current.Windows.Count;
for (int a = 0; a < n; a++)
{
for (int i = 0; i < Application.Current.Windows.Count; i++)
{
string x = Application.Current.Windows[i].Name;
if (x != "主窗体W0") Application.Current.Windows[i].Close();
}
}
}
#3
weboscar,你好
我按照你给的代码试了下,不知道哪里还有问题。只能在调用窗口的时候实例化,结果就是同一窗口能打开多个
而且我在调用第二种窗口的时候会报这个错误:
索引超出范围。必须为非负值并小于集合大小。
参数名: index
我按照你给的代码试了下,不知道哪里还有问题。只能在调用窗口的时候实例化,结果就是同一窗口能打开多个
而且我在调用第二种窗口的时候会报这个错误:
索引超出范围。必须为非负值并小于集合大小。
参数名: index
#1
不是主窗体W0都把它关掉~
private void CCForm()
{
int n = Application.Current.Windows.Count;
ArrayList FormNameList = new ArrayList();
for (int a = 0; a < n; a++)
{
FormNameList.Add(Application.Current.Windows[a].Name);
}
for (int a = 0; a < n; a++)
{
for (int i = 0; i < Application.Current.Windows.Count; i++)
{
string x = Application.Current.Windows[i].Name;
if (x != "主窗体W0") Application.Current.Windows[i].Close();
}
}
}
#2
应该这样就行了!
private void CCForm()
{
int n = Application.Current.Windows.Count;
for (int a = 0; a < n; a++)
{
for (int i = 0; i < Application.Current.Windows.Count; i++)
{
string x = Application.Current.Windows[i].Name;
if (x != "主窗体W0") Application.Current.Windows[i].Close();
}
}
}
#3
weboscar,你好
我按照你给的代码试了下,不知道哪里还有问题。只能在调用窗口的时候实例化,结果就是同一窗口能打开多个
而且我在调用第二种窗口的时候会报这个错误:
索引超出范围。必须为非负值并小于集合大小。
参数名: index
我按照你给的代码试了下,不知道哪里还有问题。只能在调用窗口的时候实例化,结果就是同一窗口能打开多个
而且我在调用第二种窗口的时候会报这个错误:
索引超出范围。必须为非负值并小于集合大小。
参数名: index