control空值判断

  众所周知,在ASP.NET中有一套对诸如文本框,下拉框等控件的值进行验证的工具。但不知道为什么winform中未提供这样的工具,所以这里用代码实现类型的功能,主要是判断文本框,下拉框中值是否为空. 步骤如下:  


1.在需要验证的控件旁添加一个红心的标签,该标签主要用于显示,提示用户其旁边的控件值的值不能为空,无任何代码。 


2.为所有需要验证控件的accessibleName属性赋初值,主要用于当该控件值为空时显示给用户什么样的值.形式如" n[来源单位]",如果控件值为空,则弹出"[来源单位]值不能为空",n是个标志,值不能为空在代码中添加


3.假如调用的方法为IsNull(this.Controls),参数为本窗体的所有控件集合


4.IsNull方法代码如下:

/// <summary>
        /// 判断控件值是否为空
        /// </summary>
        /// <param name="cts">控件容器</param>
        /// <returns>有控件的值为空则返回false,否则返回true</returns>
        public bool IsNull(Control.ControlCollection cts)
        {
            //标志位
            String msg, flag;

            //循环检测控件
            foreach (Control ct in cts)
            {
                //如果控件的AccessibleName值不为空
                if (ct.AccessibleName != null && !(ct.AccessibleName.Trim().Equals("")))
                {
                    flag = ct.AccessibleName.ToUpper().Trim();

                    //如果设置的值第一个字符为n,则将其后面的字符提出来,用于提示用户
                    if (flag.Substring(0, 1).Equals("N"))
                    {
                        //提示字符串
                        msg = flag.Length > 1 ? flag.Substring(1) + " 不能为空 !" : "";

                        //如果是文本框
                        if (ct is TextBox)
                        {
                            //如果内容为空
                            if (((TextBox)ct).Text == null || ((TextBox)ct).Text.Trim().Equals(""))
                            {
                                ct.Focus();     //使其获得焦点
                                MessageBox.Show(msg, FormMessage.Alert, MessageBoxButtons.OK);       //提示用户不可为空
                                return false;

                            }
                        }

                        //如果是下拉框
                        if (ct is ComboBox)
                        {
                            //判断选中值是否为空
                            if (((ComboBox)ct).SelectedValue == null || ((ComboBox)ct).SelectedValue.Equals(""))
                            {
                                ct.Focus();         //获得焦点
                                MessageBox.Show(msg, FormMessage.Alert, MessageBoxButtons.OK);          //提示用户
                                return false;

                            }
                        }

                        //添加其它需验证的控件

                    }

                }

                //如果控件为GroupBox容器
                if (ct is GroupBox)
                {
                    //循环检测GroupBox容器中的所有控件
                    foreach (Control ct1 in ct.Controls)
                    {

                        if (ct1.AccessibleName != null && !(ct1.AccessibleName.Trim().Equals("")))
                        {
                            flag = ct1.AccessibleName.ToUpper().Trim();
                            //如果设置的值第一个字符为N,则将其后面的字符提出来,用于提示用户,容器控件中的控件AccessibleName属性头字符设为大N
                            if (flag.Substring(0, 1).Equals("N"))
                            {
                                msg = flag.Length > 1 ? flag.Substring(1) + " 不能为空 !" : "";
                                //如果是文本框
                                if (ct1 is TextBox)
                                {
                                    //如果内容为空
                                    if (((TextBox)ct1).Text == null || ((TextBox)ct1).Text.Trim().Equals(""))
                                    {
                                        ct1.Focus(); //获得焦点
                                        MessageBox.Show(msg, FormMessage.Alert, MessageBoxButtons.OK);  //提示用户不可为空
                                        return false;

                                    }
                                }
                                //如果是下拉框
                                if (ct1 is ComboBox)
                                {
                                    //判断选中值是否为空
                                    if (((ComboBox)ct1).SelectedValue == null || ((ComboBox)ct1).SelectedValue.Equals(""))
                                    {
                                        ct1.Focus(); //获得焦点
                                        MessageBox.Show(msg, FormMessage.Alert, MessageBoxButtons.OK);//提示用户不可为空
                                        return false;

                                    }
                                }

                                //添加其它需验证的控件
                            }
                        }
                    }

                }
                //添加其它需验证的容器控件
            }
            return true;//所有控件都有值
        }

  

posted @ 2016-08-28 10:12  xszjk  阅读(264)  评论(0)    收藏  举报