Equivalent to refer to control by variable name?

2019-02-27 22:10发布

问题:

In VB I can loop through controls, or refer to a control by concatenating a variable to a string. Something like:

Dim I as integer
I = 1
Me["Textbox" & I].Text = "Some text"

What is the C# equivalent of this last statement?

回答1:

You can access the control by the control's name:

Me.Controls("TextBox" & I).Text = "Some text"

And the same in C#:

this.Controls["TextBox" & I].Text = "Some text";


回答2:

int i = 1;
this.Controls["TextBox" & i].Text = "Some text";

The above code is assuming that it is in a Control/Form.



回答3:

Close to SysDragan' solution, but Me just needs to be replaced with this. And yes, you need to specify the Controls collection.

this.Controls["TextBox" & I].Text = "Some text";


回答4:

 int I = 1;
 this["Textbox" + I].Text = "some text";

OR

 int I = 1;
 this.Page["Textbox" + I].Text = "some text";

OR

 int I = 1;
 this.Controls["Textbox" + I].Text = "some text";