加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB限制窗体内所有文本框为空

发布时间:2020-12-16 22:51:35 所属栏目:大数据 来源:网络整理
导读:做系统的时候经常遇到限制窗体中文本框为空的情况,如果逐个判断代码写起来会很慢,想了个比较简单的方法,从窗体控件的角度出发。 代码如下: Private Sub cmdOk_Click() Dim s As Control Dim frm As Form For Each s In frm If TypeOf s Is TextBox Then

做系统的时候经常遇到限制窗体中文本框为空的情况,如果逐个判断代码写起来会很慢,想了个比较简单的方法,从窗体控件的角度出发。

代码如下:

Private Sub cmdOk_Click()
    Dim s As Control
    Dim frm As Form
    For Each s In frm
        If TypeOf s Is TextBox Then
            MsgBox "输入不能为空"
            Exit Sub
        End If
    Next
End Sub

如果窗体中有一个文本框允许空,就不行了,所以还得进一步思考一下。

跟德鹏商量后得出下面这个代码:

Public Sub IsEmpty(pForm As Form)        '模块中定义公有过程判断窗体中的文本框有否有为空的
    Dim a As Control
      
    For Each a In pForm.Controls         '对窗体中的控件逐个遍历
        If a.Name = "txtSno" Then        '判断控件的名称,根据名称进行操作
            If a.Text = "" Then
                MsgBox "学号不能为空",vbOKOnly,"错误"
            End If
        ElseIf a.Name = "txtName" Then
            If a.Text = "" Then
                MsgBox "姓名不能为空","错误"
            End If
        ElseIf a.Name = "txtSex" Then
            If a.Text = "" Then
                MsgBox "性别不能为空","错误"
            End If
        ElseIf a.Name = "txtSchool" Then
            If a.Text = "" Then
                MsgBox "学校不能为空","错误"
            End If
        End If
    Next
End Sub


然后再在窗体中调用

Private Sub cmdOk_Click()
    Call IsEmpty(Me)    '调用模块中定义的公有过程
End Sub

如果在不同的窗体中,增加了新的文本框,那么只需在模块儿定义的过程中添加判断即可。这种方法,显得有点笨,但是也可以解决问题。

理想中的函数具有这样的功能。模块儿中的函数包含两个参数,一个是文本框控件数组,另一个是窗体控件。第一个参数接收所在窗体中,要判断的文本框,第二个参数传递具体窗体。但是在实现选择性的文本框判断的时候,就遇到麻烦了。现在还没有解决,先保留思路。

……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读