判断文本框、组合框是否空(机房重构知识点总结)

在机房重构过程中,作者总结了判断文本框和组合框是否为空以及如何清空它们的方法。通过将控件放入数组或Panel中,并定义相应Tag,实现了方便的判断和清除操作。文中提供了具体的代码示例,并展示了实际效果,欢迎交流讨论。

    机房重构进行时,多次用到判断文本框、组合框是否为空,以及清空文本框、组合框,为此专门抽象出一系列的方法,开始写的比较乱,昨天又重新理了一遍,拿来与大家交流学习。

 

    上图是组合查询的界面,因为上篇讲到了窗体继承,所以故意选择组合查询的父窗体,以此为基础,谈一下怎样判断文本框、组合框是否为空,怎样清空文本框、组合框,同时作为窗体继承的实践,以及组合查询的前篇。

    组合查询有三个条件,我们可以选择一个、两个或三个,这就需要我们去判断其中一部分文本框、组合框是否为空,怎么办?方法有两个,一是把需要判断的控件封装在控件数组里,另一种是放在容器Panel里(题外话:我开始用的GroupBox,结果不可以,后来是zhao同学提示的我用Panel,感谢zhao同学),下面用封装数组的方法实现:

<span style="font-family:SimSun;font-size:18px;">    '判断数组控件是否为空
    Public Function IsEmptyControlArray(ByVal ArrayControl() As Control)
        Dim control As New Control                       '定义控件类
        For Each control In ArrayControl                     '遍历数组中的控件
            If TypeOf (control) Is TextBox And control.Tag <> "" Then   '判断文本框是否为空   Tag <> ""防止漏写tag报错
                If control.Text.Trim = "" Then                           '如果空,请示用户输入
                    MsgBox("请输入" & control.Tag.ToString, vbOKOnly, "提示")
                    control.Focus()                                   '控件获得焦点
                    Return False                       '返回False
                End If
            ElseIf TypeOf (control) Is ComboBox And control.Tag <> "" Then  '判断组合框是否为空
                If control.Text = "" Or control.Text.Trim = "<请选择>" Then       '如果空,提示用户选择数据项
                    MsgBox("请选择" & control.Tag.ToString, vbOKOnly, "提示")
                    control.Focus()                         '获取焦点
                    Return False                          
                End If
            End If
        Next
        Return True                                   
    End Function
</span>

    如果是放在Panel中的,参数直接定义为Panel.ControlCollection即可,如果是判断窗体的全部控件,那么把参数定义为Windows.Forms.Control.ControlCollection。对于清空文本框、组合框也是同样的方法,这里不再赘述。

然后把你需要判断的控件放在数组里面,设置好相应的Tag,调用此方法即可。

    封装控件以及调用的代码:

<span style="font-family:SimSun;font-size:18px;">            Dim ControlArray(2) As Control             '定义控件数组,获取组合1的控件
            ControlArray(0) = cboField1
            ControlArray(1) = cboOperator1
            ControlArray(2) = txtKey1

            If CommonMethod.IsEmptyControlArray(ControlArray) = False Then               '判断组合1的控件是否为空
                Exit Sub
            End If</span>

    看一下效果:


    方法就介绍到这里,欢迎大家批评指正。

评论 38
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值