如何动态地获得.net应用程序上的所有控件
本文关键字:程序上 应用程序 应用 控件 net 何动态 动态 | 更新日期: 2023-09-27 18:19:05
在过去的几天里,我一直在研究如何在c#中编写一个方法,可以在单击。net应用程序时动态获取所有控件。大多数例子都是在你指定的按钮上,例如
ctl.MouseClick += new MouseEventHandler(Form1_MouseClick);
在上面的例子中,我们指定了Form1_MouseClick
。
我要找的是动态地得到所有的控件和它的属性从任何。net应用程序你点击。举个例子如果我有两个。net应用程序,一个有3个组合框,另一个有3个按钮,当我点击第一个时,它应该告诉我有3个组合框并显示其属性,当我点击第二个时,它应该告诉我有3个按钮及其属性。类似于。net对象间谍的东西,纯粹在c#中
我的问题是我不知道从哪里开始,如果有人能给我指出正确的方向,我将非常感激。
可以使用Reflection
foreach (var control in <YourForm>.Controls)
{
var props = control.GetType().GetProperties();
foreach (var propertyInfo in props.Where(p=>p.PropertyType == typeof(string)))
{
Console.WriteLine("Name: {0} - Value: {1}", propertyInfo.Name, propertyInfo.GetValue(control, null));
}
}
这只是你如何实现目标的一个例子。
欢呼,马丁