加一个容器就能解决你所有问题了,你自己的方法有问题的。你new的东西,并不是窗体上有的。
把TextBox、comboBox、checkBox放在一个Panel上或者其他容器上,然后
foreach (Control c in this.panel1.Controls)
{
if (c is TextBox)
{
((TextBox)c).Text = string.Empty;
}
if (c is ComboBox)
{
((ComboBox)c).Items.Clear();
}
if (c is CheckBox)
{
((CheckBox)c).Checked = false;
}
}
new 的TextBox并不是你Form上的TextBox
参考代码:
private void button1_Click(object sender, EventArgs e)
{
foreach (Control c in this.Controls)
{
if (c.GetType().ToString().Contains("TextBox"))
{
((TextBox)c).Text = "";
}
if (c.GetType().ToString().Contains("ComboBox"))
{
((ComboBox)c).Text = "";
}
if (c.GetType().ToString().Contains("CheckBox"))
{
((CheckBox)c).Checked = false;
}
}
}
foreach (Control ct in this.Controls)
{
if (ct.GetType().Name.ToLower() == "textbox")
{ ct.Text = ""; }
}
注意 this.Controls
如果textbox是某个控件(groupBox1)的子控件..
则要写成 this.groupBox1.Controls
别用数组。用List<>把。
你这样定义的textbox还没有初始化.
所以引用错误.
List
你的TextBox数组只是new了一个空的数组
遍历它意义何在?