- 爱易网页
-
C#教程
- C# 依据 一个画面的exe 解析出 里面所有的控件
日期:2014-05-17 浏览次数:20901 次
C# 根据 一个画面的exe 解析出 里面所有的控件
我有一个 Winfrom 程序 有 From1 里面若干 控件!编译生成exe,
然后再建一个Winfrom 程序 读取 上一个 生成好的exe 将里面 用到的 所有的控件和其某些属性 列出显示!
(也可以只列出指定类型的控件 比如 TextBox Commbox Grid)
效果举例:
类型 名称 可见 可改
TextBox txt_Name true false
TextBox txt_Age true true
Commbox cbx_Country true true
... ... ... ...
看了下反射
OpenFileDialog fd = new OpenFileDialog();
fd.Filter = "|*.exe";
DialogResult dr = fd.ShowDialog();
if (dr == DialogResult.OK)
{
this.textBox1.Text = fd.FileName;
//加载exe
dllexe = Assembly.LoadFrom(fd.FileName);
//获取所有模块
Module[] modules = dllexe.GetModules();
//筛选Form模块
Type[] types = modules[0].GetTypes();
int i = 1;
foreach (Type t in types)
{
if (t.BaseType == typeof(Form))
{
PropertyInfo [] pis = t.GetProperties();
foreach (PropertyInfo pi in pis)
{
if (pi.PropertyType.Name == "ControlCollection")