c# 遍历当前应用程序 的所有控件,下面这个程序只遍历到当前窗体,要如何遍历整个项目的呢?/
c# 遍历当前应用程序 的所有控件,下面这个程序只遍历到当前窗体,要怎么遍历整个项目的呢??/
c# 遍历当前应用程序 的所有控件,下面这个程序只遍历到当前窗体,要怎么遍历整个项目的呢??/
private void ClearTextBox()
{
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is TextBox)
{
TextBox tb = new TextBox();
tb = (TextBox)control;
tb.Text =string.Empty;
}
}
}
------解决方案--------------------
如果是VB.NET话,或许简单点
首先,遍历,需要知道, 遍历的窗体
要知道,要遍历的窗体, 就绪要在启动窗体时,建立一个全局, 一开窗体列表
之久,就简单了
------解决方案--------------------
遍历整个项目的控件
得通过反射
通过反射取出当前程序集所有的从UI集成出来的类
在每个类中遍历它的控件
------解决方案--------------------
System.Reflection.Assembly.GetTypes
这样可以取出 当前程序集所有的类型 自己再试试吧
------解决方案--------------------
Assembly a = Assembly.LoadFile(Application.ExecutablePath);
Type[] types = a.GetTypes();
foreach (Type t in types)
{
MessageBox.Show(t.Name);
}
------解决方案--------------------
c# 遍历当前应用程序 的所有控件,下面这个程序只遍历到当前窗体,要怎么遍历整个项目的呢??/
private void ClearTextBox()
{
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is TextBox)
{
TextBox tb = new TextBox();
tb = (TextBox)control;
tb.Text =string.Empty;
}
}
}
------解决方案--------------------
如果是VB.NET话,或许简单点
首先,遍历,需要知道, 遍历的窗体
要知道,要遍历的窗体, 就绪要在启动窗体时,建立一个全局, 一开窗体列表
之久,就简单了
------解决方案--------------------
遍历整个项目的控件
得通过反射
通过反射取出当前程序集所有的从UI集成出来的类
在每个类中遍历它的控件
------解决方案--------------------
System.Reflection.Assembly.GetTypes
这样可以取出 当前程序集所有的类型 自己再试试吧
------解决方案--------------------
Assembly a = Assembly.LoadFile(Application.ExecutablePath);
Type[] types = a.GetTypes();
foreach (Type t in types)
{
MessageBox.Show(t.Name);
}
------解决方案--------------------
- C# code
private void button1_Click(object sender, EventArgs e) { Assembly a = Assembly.LoadFile(Application.ExecutablePath); Type[] types = a.GetTypes(); foreach (Type t in types) { if (t.BaseType.Name == "Form") { Form f = (Form)Activator.CreateInstance(t, true); if (f != null) { foreach (Control c in f.Controls) { MessageBox.Show(c.Name); } } } } }
------解决方案--------------------
还要考虑
如果窗口是继承了多次From就不仅仅是判断BaseType属性了,有可能是BaseType.BaseType. ...
如果那个窗体没有无参数的构造函数,Activator.CreateInstance执行是个问题。