2009-11-23 1 views
2

У меня есть имя элемента управления в строке, и я хочу управлять элементом управления, как я могу превратить строку в текущий экземпляр формы этого элемента управления в C# ?получить контроль с определенным именем, предоставленным в виде строки в C#

например.

string controlName = "Button1"; 

Что здесь?

button1.text = "Changed"; 

Благодаря

ответ

3
Button button1 = (Button)this.Controls[controlName]; 
+0

Спасибо всем троим, я знал, что это просто, как только вы знаете, как это сделать! – Nath

1

Вы должны смотреть на контроль в коллекции элементов управления, а затем бросил его на правильный тип. Это в WPF, WinForms или ASP.Net?

1

Внутри формы, вы могли бы написать (C#)

this.Controls["Button1"].Text = "Changed"; 

Я полагаю, это может быть синтаксис в vb.net

Me.Controls("Button1").Text = "Changed" 

EDIT: Я не знаю, , если это будет скомпилировано. @Binary Worrier is right

Button btn1 = this.Controls["Button1"] as Button; 
btn1.Text = "Changed"; 
+0

В конце концов, он работал более надежно, и компилирует для меня штраф, спасибо :) – Nath