如何在提交按钮的事件下判断所有的textbox没有空值,如果有就提示“未填写完整,请核对后再提交”的字样。并且阻止提交数据。
文本框很少的情况下我们可以用if判断,如果文本框很多的情况下呢?不可能用很多if吧,在程序员的角度这种方法是不可行的。
首先用foreach判断所有文本框是否为空:
foreach (Control con in this.Controls)
{
if (con is TextBox)
{
if (string.IsNullOrEmpty((con as TextBox).Text))
{
MessageBox.Show("请将信息补充完整!","提示");
return con;
}
}
}
作为一个合格的程序猿来说,如果有很多窗体需要用这个循环是不是得写很多次,代码冗余问题随之而来,而且现在开发都是面向对象,我们应该充分运用面向对象的方法完善我们的代码。
新建一个公共(public)类,类里面有一个公共静态方法,需要引入命名空间using System.Windows.Forms;。
类的名字为:common,方法名为:control
public class common
{
public static Control control(Form frm)
{
//全判空
foreach (Control con in frm.Controls)
{
if (con is TextBox)
{
if (string.IsNullOrEmpty((con as TextBox).Text))
{
MessageBox.Show("请将信息补充完整!","提示");
return con;
}
}
}
return null;
}
我们在窗体中直接调用即可。
common com=new common();
com.control(this);
文本控件为空就给出提示,control方法返回该控件,可以直接调用该控件属性来改变控件的属性:control.focus()