在动态表单上访问属性

时间:2013-11-21 12:04:32

标签: c# forms properties

如何在动态表单上访问属性:

Type type = Type.GetType("GMD.Chart_Forms." + chart);
Form form = (Form)Activator.CreateInstance(type); 
form.PROPERTY????? = ...;
form.Show();

我知道我无法直接访问它是合乎逻辑的,因为信息(表单名称)只能在运行时使用。但有没有办法在动态表单上访问属性?

2 个答案:

答案 0 :(得分:2)

您可以使用dynamic

dynamic form = Activator.CreateInstance(type);
form.Property = value;

但如果该属性不存在,您可能会收到运行时异常。

为了避免这种情况,可以添加一项检查以查看该属性是否存在:

How to detect if a property exists on an ExpandoObject?

答案 1 :(得分:0)

它很乱,但是你可以检查表单的子控件,直到你达到你想要的控件,然后将它CAST到你知道它的类型,然后访问该属性。

相关问题