通过for循环迭代文本框
本文关键字:文本 迭代 循环 for 通过 | 更新日期: 2023-09-27 18:06:44
假设我有10个文本框,我想在每个文本框中放入相同的文本。我不想把textBoxNum. Text = "hello!"
写十遍所以我可以这样写:
for(int i=1; i<=10; i++)
{
textBox + i. Text = "hello!";
}
显然,它不起作用。
如何用for
循环完成这一点?
您需要将所有文本框加载到列表或数组结构中,这将允许您对其进行迭代。
TextBox[] boxes = { tb1, tb2, tb3, ... };
否则,您可以检查您的窗体/容器的Controls
属性的TextBox
类型的项目。如果控件可以嵌套在更深的容器中,您可能需要递归地探索它们(在这一点上,我会认真考虑数组方法,除非您有一些可怕的文本框要加载)。但是作为起始点,您可以使用
foreach (var tb in this.Controls.OfType<TextBox>())
{
tb.Text = "whatever";
}
你应该把你的文本框放到一个数组中:
TextBox[] boxes;
public MyForm() {
InitializeComponent();
boxes = { someTextBox, otherTextBox, ... };
}
像这样:
foreach (Control c in this.Controls)
{
if (c is TextBox)
{
((TextBox)c).Text = "Hello";
}
}
假设您想要设置控件'表单中包含的所有文本框的文本,但可以针对更具体的场景进行修改
您还可以编辑只匹配您想要的控件。下面是一个例子。
foreach(Control ctrl in Controls)
{
if (ctrl.Name.StartsWith("TextBoxToEdit"))
{
ctrl.Text = "Hello!";
}
}
也没有必要将控件强制转换为TextBox,因为control已经具有Text属性。