使用字符串C#设置控件属性

本文关键字:控件 属性 设置 字符串 | 更新日期: 2023-09-27 18:26:46

我目前正在编写一个库,该库允许我自定义表单元素。下面的代码是一个函数,它获取控件的名称,获取属性的名称,然后设置控件的属性,但由于某种原因,我似乎无法使其工作。感谢您的帮助。

代码:

public void SetProp(string name, string prop, string value)
    {
        Form FormControl = Application.OpenForms[form];
        Control mycontrol = FormControl.Controls.Find(name, true)[0];
        PropertyInfo pInfo = mycontrol.GetType().GetProperty(prop);
        TypeConverter tc = TypeDescriptor.GetConverter(pInfo.PropertyType);
        var x = tc.ConvertFromString(value);
        pInfo.SetValue(name, x, null);
    }

示例调用:

 SetProp("greg", "Text", "hi") 

使用字符串C#设置控件属性

您需要将实际的源对象传递到PropertyInfo.SetValue调用中,以便实际修改它。PropertyInfo基本上只是关于属性的信息(因此得名),它没有与特定实例的附件。

你可以通过这样更改你的呼叫来实现:

pInfo.SetValue(mycontrol, x);

http://msdn.microsoft.com/en-us/library/hh194291(v=vs.110).aspx