您的位置:首页 > 编程语言 > C#

C#通过反射获取按钮的文本

2009-09-17 08:46 288 查看
效果图:



下面是被反射的窗口:



具体代码:
string text = "";
//加载程序集
Assembly assembly = Assembly.LoadFrom(Directory.GetCurrentDirectory() + "//WindowsApplication3.exe");
//创建实例
object obj=assembly.CreateInstance("WindowsApplication3.Form2");
//获取实例对象类型
Type form = obj.GetType();
//获取类型中的所有字段
FieldInfo[] fis = form.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
foreach (FieldInfo fi in fis)
{
if (fi.FieldType == typeof(Button))//判断字段是否为按钮
{
text += fi.Name+"/r/n----------------------------------/r/n";
//获取按钮的实例的类型
Type bt = (fi.GetValue(obj)).GetType();
//获取按钮实例的所有属性
PropertyInfo[] pis=bt.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
foreach (PropertyInfo pi in pis)
{
if(pi.Name=="Text")//判断该属性是否为Text
{
text += pi.GetValue((fi.GetValue(obj)), null) + "/r/n";
}
}
text += "-----------------------------------------/r/n";
}
}
textBox1.Text = text;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: