循环遍历winform所有窗体的名称,和所有活动的窗体

//循环遍历WinForm所有项目中窗体的名称
System.Reflection.Assembly a = System.Reflection.Assembly.LoadFile(Application.ExecutablePath);//.net中的反射 Type[] types = a.GetTypes(); foreach (Type t in types) { if (t.BaseType.Name == "Form") { MessageBox.Show(t.Name); } ———————————————— 原文链接:https://blog.****.net/u013908405/java/article/details/50342293
//循环遍历子窗体中所有活动窗体
foreach
(Form f in Application.OpenForms) { Console.WriteLine(f.Text); }

 

//上面的foreach,在子窗体中没问题,但是不是子窗体会提示集合已修改;可能无法执行枚举操作
//以上也是集合类型的foreach循环的普遍现相,只要集合改变就会报错
//这里就需要使用for循环遍历窗体了

FrmMain frmMain=new FrmMain();
for (int i = 0; i < Application.OpenForms.Count; i++) { if (frmMain.Name != Application.OpenForms[i].Text) { Application.OpenForms[i].Hide(); } if (frmMain.Name == Application.OpenForms[i].Text) //若该窗体已被打开 { frmMain.Activate(); //激活该窗体 isOpened = true; //设置子窗体的打开标记为true } }

 

循环遍历winform所有窗体的名称,和所有活动的窗体

上一篇:C#编程之Slider控件使用


下一篇:[WPF]总结一些我在开发WPF时常用的工具