我有Form
,当我从ComboBox
中选择一个值时,下面的所有TextBox
es(大约150)和Label
都会随着我的信息而改变从阅读日志中获得。
问题在于某些日志不具备所有信息,因此该字段应保持为空。问题是当TextBox
之前已包含信息时,当我更改ComboBox
时,此信息不会重置。
我尝试使用Button
清除所有TextBox
es,但我有160个。
private void button2_Click_1(object sender, EventArgs e)
{
textbox1.Clear();// do it for all the textboxs
}
答案 0 :(得分:1)
您可以使用:
public void ResetAllTextBoxes()
{
// Iterate over all Controls in the current form
foreach (Control control in this.Controls)
// If the control is a TextBox ...
if (control is TextBox)
// ... clear its text
(control as TextBox).Text = "";
}
答案 1 :(得分:1)
除了Steve's回答之外,如果TextBox
嵌套在其他容器中(例如GroupBox
),而不是直接嵌入Form
,则必须递归到子容器中:
private void ClearTextBoxes(Control container)
{
foreach(TextBox textBox in container.Controls.OfType<TextBox>())
textBox.Clear();
foreach(Control control in container.Controls)
ClearTextBoxes(control);
}
并称之为:
private void button2_Click_1(object sender, EventArgs e)
{
ClearTextBoxes(this); // "this" being your Form
}