怎么遍历winform控件的属性?
1个回答
2013-12-02
展开全部
用反射来实现参考一下这个。虽然有些出入,但稍稍修改下就可以了public void getPropertyValue(Control container)
{
string[] propertyNames = { "Text", "Value", "Name" }; //想要取得的属性名称
Type typeCtr = null;
object obj = null;
System.Reflection.PropertyInfo p = null;
StringBuilder sbResult = new StringBuilder();
foreach (Control ctr in container.Controls)
{
typeCtr = ctr.GetType();//取得控件的类别
foreach (string str in propertyNames)
{
p = typeCtr.GetProperty(str); //取得指定名称的属性
if (p != null)
{
obj = p.GetValue(ctr, null); //取得属性对应的值
sbResult.AppendLine(string.Format("控件 {0} 的属性 {1} 的值为:{2}", ctr.Name, p.Name, obj)); //输出结果
}
}
}
MessageBox.Show(sbResult.ToString());
}
private void button1_Click(object sender, EventArgs e)
{
getPropertyValue(this);
}
{
string[] propertyNames = { "Text", "Value", "Name" }; //想要取得的属性名称
Type typeCtr = null;
object obj = null;
System.Reflection.PropertyInfo p = null;
StringBuilder sbResult = new StringBuilder();
foreach (Control ctr in container.Controls)
{
typeCtr = ctr.GetType();//取得控件的类别
foreach (string str in propertyNames)
{
p = typeCtr.GetProperty(str); //取得指定名称的属性
if (p != null)
{
obj = p.GetValue(ctr, null); //取得属性对应的值
sbResult.AppendLine(string.Format("控件 {0} 的属性 {1} 的值为:{2}", ctr.Name, p.Name, obj)); //输出结果
}
}
}
MessageBox.Show(sbResult.ToString());
}
private void button1_Click(object sender, EventArgs e)
{
getPropertyValue(this);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询