繁体   English   中英

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

[英]Set Control Properties using strings C#

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

编码:

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") 

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

你可以通过更改你的电话来使它工作:

pInfo.SetValue(mycontrol, x);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM