C#从字符串值创建控件

时间:2011-04-26 08:55:59

标签: c# windows winforms

您好我可以从字符串值创建一个控件 喜欢

这 “System.Windows.Forms.TextBox”创建控件

4 个答案:

答案 0 :(得分:4)

你可以使用反射:

var textBoxType = typeof(Control).Assembly.GetType("System.Windows.Forms.TextBox", true);
var textBox = Activator.CreateInstance(textBoxType);

答案 1 :(得分:1)

这样做:

var controlType = typeof(Control);
        var type = controlType
            .Assembly
            .GetTypes()
            .Where(t => controlType.IsAssignableFrom(t) && 
                        t.Namespace == "System.Windows.Forms"
                        t.Name == "ControlName"
            ).FirstOrDefault();

var inst = Activator.CreateInstance(type );

这个答案是因为您之前提出的问题。

答案 2 :(得分:0)

var assembly = Assembly.GetExecutingAssembly();
var type = assembly.GetType("System.Windows.Forms.TextBox");
var inst = Activator.CreateInstance(type);

尚无法测试。但它应该做到这一点。

答案 3 :(得分:0)

 Type t = Type.GetType( yourTypeStingHere);

 ConstructorInfo info = t.GetConstructor( new Type[] { } );
 object instance = info.Invoke(new object[]{} )