C# 一个窗体想点击按钮批量清空所有TextBox、comboBox、checkBox的数据,怎么实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 一个窗体想点击按钮批量清空所有TextBox、comboBox、checkBox的数据,怎么实现?相关的知识,希望对你有一定的参考价值。

这个按钮是在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

参考技术A 加一个容器就能解决你所有问题了,你自己的方法有问题的。你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;

参考技术B 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;


本回答被提问者采纳
参考技术C foreach (Control ct in this.Controls)

if (ct.GetType().Name.ToLower() == "textbox")
ct.Text = "";


注意 this.Controls
如果textbox是某个控件(groupBox1)的子控件..
则要写成 this.groupBox1.Controls
参考技术D 别用数组。用List<>把。
你这样定义的textbox还没有初始化.
所以引用错误.
List<Textbox> listtb=new List<Textbox>();
第5个回答  2009-10-22 你的TextBox数组只是new了一个空的数组
遍历它意义何在?

C# 窗体(登录界面)

首先拖动一个  lable(写用户名)  后面 跟一个Textbox

lable(写密码) 后面 跟一个Textbox(需设置一下属性行为useSystemPasswordChar(默认输入的密码为黑点))

再加Button 按钮(text 登录)    

如下图:

1、属性——杂项(AcceptButton设置成Button1)就可以按回车显示下一个页面

2、传值:Login.cs[设计] 传到 Main.cs[设计] 里一个值     用构造方法:1、在Main.cs[设计] 里拖一个Lable来准备接收

再在Main.cs里重载一个方法:

再在Login.cs里来接收:——造主窗体对象时   Main m=new Main(uid)

 

双击登录 加一个事件:

数据操作类如下:

public partial class Login : Form
{
public string username;
public Login()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
先取出用户名 密码
定义变量取到用户名、密码
string uid= textuid.Text;
string pwd= textpwd.Text;
再判断uid是不是空的
if (uid != "" && pwd != "")
{
都不为空时再来判断 uid pwd 是不是匹配
操作数据库 做三个类

LoginDA da = new LoginDA();          调用方法前先造一个对象
da.Denglu(uid,pwd);                      调用第三个类里的方法,传两个参数过来
if (da.Denglu(uid, pwd))                 判断
{

登录之后,关闭登录页面,只显示Main页面,Main成为主窗体
将用户名赋值给成员变量username
username = uid;
将该窗体的返回值变为OK                                 三步
this.DialogResult = DialogResult.OK;
//将该窗体关闭
this.Close();
}
else
{
MessageBox.Show("用户名或密码错误!");
}

}


else

//如果是空
MessageBox.Show("用户名和密码不能为空!");
}

}

 

 

需改动:program.cs

 

 

 

下拉列表:

public partial class Main : Form
{

private ZgDA cda;
public Main()
{
InitializeComponent();
}
public Main(string username)//重载了一个Main方法

InitializeComponent();

cda = new ZgDA(); 

}

private void label1_Click(object sender, EventArgs e)
{

 

}

private void Main_Load(object sender, EventArgs e)
{

填充省的下拉列表
Fillsheng();
填充市的下拉列表
Fillshi();
填充区的下拉列表
Fillqu();
}

private void cmbsheng_SelectedIndexChanged(object sender, EventArgs e)

{
填充市的下拉列表
Fillshi();

}

 

private void cmbshi_SelectedIndexChanged(object sender, EventArgs e)
{
填充区的下拉列表
Fillqu();
}
public void Fillsheng()//填充省的方法
{
List<Zg> List= cda.select("0001");              根据父级代号查到该父级下所有的子集的集合
cmbsheng.DataSource = List;                     把查到的集合交给省的下拉作为数据源
cmbsheng.DisplayMember = "Name";             显示民族名称
cmbsheng.ValueMember = "Code";                后台值是民族代号
}
public void Fillshi()                                   填充市的方法
{
List<Zg> List = cda.select(cmbsheng.SelectedValue.ToString());选中哪个省就取到哪个省的代号
cmbshi.DataSource = List;                          把查到的集合交给市的下拉作为数据源
cmbshi.DisplayMember = "Name";                  显示民族名称
cmbshi.ValueMember = "Code";                    后台值是民族代号
}
public void Fillqu()//填充市的方法
{
List<Zg> List = cda.select(cmbshi.SelectedValue.ToString());   选中哪个省就取到哪个省的代号
cmbqu.DataSource = List;                         把查到的集合交给市的下拉作为数据源
cmbqu.DisplayMember = "Name";                显示民族名称
cmbqu.ValueMember = "Code";                  后台值是民族代号
}
}
}

以上是关于C# 一个窗体想点击按钮批量清空所有TextBox、comboBox、checkBox的数据,怎么实现?的主要内容,如果未能解决你的问题,请参考以下文章

C# 清除当前窗体中TextBox控件中的内容

清空textbox中的文字,C#

C#如何判断winform窗口里面的所有控件都没有点击

C#(Winfrom)窗体传值问题(子窗体回传值给父窗体)

菜鸟求助:c#三个窗体间传递数值

c#.net中,如何获取控件的所有属性,界面上有个TextBox, 一个按钮,一个listview点击按钮将Textbox属性获