一个判断空填的方法

最近在进行机房收费系统的重构,在进行注册界面的时候,由于要有很多的信息需要收集并且上传到数据库,所以,在进行上传之前,要对所有的textbox和combobox进行是否为空的判断。

【思路】

1、结合之前vb版的机房的经验,最简单和容易理解的就是用if语句的嵌套。
大概是这个样子的!

if(txtcardno.Text=="")
{
    MessageBox.Show("请填写卡号!");
    txtcardno.Focus();
}
else
{
    if()
    {

    }
    else
    {
        if()
        {

        }
    }
}

经过我的实战,十几个控件写完后,整整一大篇,虽然逻辑上确实上确实很容易理解,将漏填的信息具体的反馈给用户,但是这对于C#(面向对象语言)来说,就是非常不合适的。
所以就有了第二种解决方案。
2、只用一个if语句,结合逻辑判断。
大概是这个样子!

if(txtcardno.Text==""||txtstudentno.Text==''||……)
{
    MessageBox.Show("请将信息填写完整!");
}

这样子确实非常简单,但是从用户的角度来说,就会比较麻烦,如果客户端要填写的只有几个,这样用户自然可以根据你的提示,一眼就能看到哪个漏填了,但是如果有10几个,20几个控件呢?用户找起来会很麻烦。
所以就有了第三种方法!
3、利用C#语言的特性,封装性,我们可以将判断是否漏填的方法,封装起来,这样,如果需要进行判断,就只需要调用方法就行了,非常方便!
代码大概是这样:

using Syste.Windows.Forms; //因为方法独自写在类中,使用控件需要引用方法
public  class isNull
    { 
        public void  isnull(ref bool isOk, params TextBox[] textBoxs)//写一个方法,判断txtbox控件是否为空
        {
            foreach (TextBox txtbox in textBoxs) //遍历传进来的所有TextBox控件
            {
                if (txtbox.Text.Length <= 0) //如果长度为0
                {
                    isOk = false;         //给标签的值改为false,标签的作用是在实际用的时候,进行判断的

                    txtbox.BackColor = Color.Red;//如果该控件的长度为0,就把他的背景色改为醒目的红色。
                }
                else
                {
                    txtbox.BackColor = Color.White;//如果不为0,保持默认的白色。
                }
            }

        }           
        public void  isnull(ref bool isOk, params ComboBox[] comboBoxs)//将方法进行重载,支持判断combobox类型
        {
            foreach (ComboBox cmbbox in comboBoxs)
            {
                if (cmbbox.SelectedIndex <= 0)//此处要注意,你的combobox的控件属性值的默认值不能为0.可以将该控件的默认值0写成“-请选择-”
                {
                    isOk = false;
                    cmbbox.DroppedDown = true;//在这里控件的默认值为0,则代表用户没有进行选择,就把该下拉框的下拉菜单展示出来。

                }
            }
        }
    }

}
//在窗体中的运用
 private void btnOk_Click_1(object sender, EventArgs e)
        {
            bool isok = true;   //将标签的默认值写成true,因为方法里是,如果空填就把标签值改成false
            isNull isnull = new isNull();//实例化方法类
            isnull.isnull(ref isok, cmbSex, cmbDepartment, cmbGrade, cmbClass);//调用方法,括号中写入需要检查为空的控件名,注意控件类型与方法类型匹配
            isnull.isnull(ref isok, txtcardno, txtStudentName, txtstudentno);//利用重载的方法, 检查textbox类型控件是否为空,

            if (!isok)
            {
                return;//如果控件为空,就按照方法里的设置返回值,文本框为空,它的背景色就会变成红色,如果combobox没有选择,就会打开它的下拉菜单。
            }
            else
            {
            //写都不为空成立时,接下来的操作!
            }

【反思】

这个方法写出来之后,真的是非常的方便,所有需要判断是否漏填的窗体,直接调用方法就OK了,特别爽,虽然对于大佬来说,这没有什么,但是自己实现这个方法之后,我感觉我已经爱上了C#!哈哈,如果,你有更好的方法, 欢迎一起交流!

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LLLDa_&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值