C# 一个窗体想点击按钮批量清空所有TextBox、comboBox、checkBox的数据,怎么实现?
这个按钮是在toolStrip上的一个,因为内容太多所以想用个数组实现批量清空关于TextBox我这样写的privatevoidtoolStripButton3_Clic...
这个按钮是在toolStrip上的一个,因为内容太多所以想用个数组实现批量清空
关于TextBox我这样写的
private void toolStripButton3_Click(object sender, EventArgs e)
{
TextBox[] tboxes = new TextBox[500];
foreach (TextBox t in tboxes)
t.Text = String.Empty;
}
报错是“未处理NullReferenceException”
另外comboBox、checkBox部分怎么写?
求高手指点!望尽快得到答复!万分感谢
新手上路求详解……错在哪里……应该怎么写……Orz 展开
关于TextBox我这样写的
private void toolStripButton3_Click(object sender, EventArgs e)
{
TextBox[] tboxes = new TextBox[500];
foreach (TextBox t in tboxes)
t.Text = String.Empty;
}
报错是“未处理NullReferenceException”
另外comboBox、checkBox部分怎么写?
求高手指点!望尽快得到答复!万分感谢
新手上路求详解……错在哪里……应该怎么写……Orz 展开
5个回答
展开全部
加一个容器就能解决你所有问题了,你自己的方法有问题的。你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;
}
}
把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;
}
}
}
参考代码:
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
{
if (ct.GetType().Name.ToLower() == "textbox")
{ ct.Text = ""; }
}
注意 this.Controls
如果textbox是某个控件(groupBox1)的子控件..
则要写成 this.groupBox1.Controls
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
别用数组。用List<>把。
你这样定义的textbox还没有初始化.
所以引用错误.
List<Textbox> listtb=new List<Textbox>();
你这样定义的textbox还没有初始化.
所以引用错误.
List<Textbox> listtb=new List<Textbox>();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的TextBox数组只是new了一个空的数组
遍历它意义何在?
遍历它意义何在?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询