Say I have 10 text boxes and I want to put the same text into each of them. I don\'t want to write textBoxNum. Text = \"hello!\"
ten times so I might write somethin
Like this:
foreach (Control c in this.Controls)
{
if (c is TextBox)
{
((TextBox)c).Text = "Hello";
}
}
Assuming you want to set the text of all textboxes contained on the control\form, but can be modified for more specific scenarios
You either need to load all of your textboxes into a list or array structure, and this will allow you to iterate over it.
TextBox[] boxes = { tb1, tb2, tb3, ... };
Otherwise, you could inspect the Controls
property of your form/container for items of the TextBox
type. If the controls could be nested in deeper containers, you might need to recursively explore them (at this point, I would seriously consider an array approach, unless you have some ghastly number of textboxes to load). But as a starting point, you might have
foreach (var tb in this.Controls.OfType<TextBox>())
{
tb.Text = "whatever";
}
You should put your textboxes into an array:
TextBox[] boxes;
public MyForm() {
InitializeComponent();
boxes = { someTextBox, otherTextBox, ... };
}
You could also edit controls only matching something that you want. Here's an example.
foreach(Control ctrl in Controls)
{
if (ctrl.Name.StartsWith("TextBoxToEdit"))
{
ctrl.Text = "Hello!";
}
}
Also, there is no need to cast the control into TextBox as Control already has the Text property.