您好我可以从字符串值创建一个控件 喜欢
这 “System.Windows.Forms.TextBox”创建控件
答案 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[]{} )