2011-04-26 41 views
1

您好我可以創建字符串值 像C#創建控制在將字符串值

從 「System.Windows.Forms.TextBox」控件創建控制

+0

您的問題不清楚回答。 – 2011-04-26 08:59:21

+0

對我來說非常有意義 – RustyH 2014-09-09 17:13:50

回答

2

您可以使用反射:

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

Thanks.Thanks.Thanks.Its true,working wonderfull.i也有一個問題。我定義了文本框,但是如何從「string」字符串中改變文本框的文本或大小 – deneme 2011-04-26 09:10:46

+2

@deneme,你可以一次再次在新創建的實例上使用反射:'textBoxType.GetProperty(「Text」).SetValue(textBox,「Hello World」,null);'。我會建議你閱讀更多關於反思:http://msdn.microsoft.com/en-us/library/f7ykdhsy.aspx – 2011-04-26 09:12:32

+0

非常感謝達林! – BillW 2011-07-11 13:53:13

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

不能測試然而。但它應該做的伎倆。

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

這個答案是因爲你以前的問題。

0
Type t = Type.GetType(yourTypeStingHere); 

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