WinForm中实现控件中的值是否为空的判断

本文介绍如何在WinForm应用中通过代码实现对TextBox和ComboBox等控件值的空值检查,以弥补WinForm缺少内置验证工具的不足。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  众所周知,在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(01).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(01).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;//所有控件都有值
        }

QQ:25717594  E-MAIL:yiai027@163.com

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值