VB.NET⽤循环判断⽂本框是否为空
第⼀次敲机房的时候,有很多窗体中都有清空⽂本框或组合框中内容的功能,当时⽤了循环来做。现在第⼆次机房重构,发现判断⽂本框、组合框内容是否为空也可以⽤循环。其实这些功能最直接的⽅法就是⼀个⼀个的判断,不过这样代码基本上是重复的,这应该就是编程中的“坏味道”吧。我们并不是敲代码的机器,应该试着去尝试⼀些简单快速有效的⽅法。
在⽹上查了⼀些⽅法,有⼀种是监理textBox⽂本框的控件数组,来循环判断,总觉得数组的命名跟咱们的机房有些问题,于是⼜发现了⼀个更好的⽅法。
下⾯就具体介绍⼀下如何⽤循环来判断⽂本框是否为空以及清空⽂本。
1.新建CheckModel模块。(右击U层——添加——新建项,在弹出的对话框中继续选择即可添加)
'定义结构体
Public Structure Term
Dim controlSub As Control
Dim strText As String
Sub New(ByVal controlSub As Control, ByVal strText As String)
With Me
.controlSub = controlSub
.strText = strText
End With
End Sub
End Structure
'定义Term类型的结构体数组
Public arrayControl() As Term
3.以注册窗体为例,在frmRegister窗体中定义过程Rdim(),⽤来初始化Term类型结构体数组。
注册窗体:
Rdim()过程:
Public Sub Rdim()
'重新定义arrayControl()数组维数
ReDim Preserve arrayControl(10)
'初始化数组
arrayControl(0) = New Term(txtCardNo, "卡号")
arrayControl(1) = New Term(txtStuNo, "学号")
arrayControl(2) = New Term(txtName, "姓名")
arrayControl(3) = New Term(txtCash, "⾦额")
arrayControl(4) = New Term(txtRemarks, "备注")
arrayControl(5) = New Term(cboDepartment, "系别")
arrayControl(6) = New Term(cboGrade, "年级")
arrayControl(7) = New Term(cboClass, "班级")
arrayControl(8) = New Term(cboSex, "性别")
arrayControl(9) = New Term(cboStatus, "状态")
arrayControl(10) = New Term(cboType, "类型")
End Sub
4.在CheckModel模块中添加CheckIsEmpty()函数,⽤来判断⽂本框、组合框的内容是否为空。
'''定义判断是否为空的函数
'''判断数组中控件的Text属性是否为空,并给出相应提⽰
'''</summary>
''' <param name="arrayControl">需要遍历的结构体数组</param>
''' <returns>返回Boolean值,true表⽰为空,false表⽰不为空</returns>
Public Function CheckIsEmpty(ByVal arrayControl() As Term) As Boolean
Dim termControl As Term
'遍历结构体数组中的所有元素,如果控件⽂本为空,则弹出messsgbox提⽰⽤户
For Each termControl In arrayControl
'判断窗体中的控件是否为⽂本框或组合框
If lSub Is TextBox Or lSub Is ComboBox Then                '判断⽂本框或组合框中的内容是否为空
lSub.Text.Trim = "" Then
MessageBox.Show(termControl.strText & "不能为空", "", MessageBoxButtons.OK)
Return True
Exit Function
End If
End If
Next
Return False      '返回false,提⽰内容不为空
End Function
5.在frmRegister窗体中调⽤CheckIsEmpty函数,检查是否为空。
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
'调⽤Rdim()初始化数组
Call Rdim()
typeof array'调⽤CheckIsEmpty()函数检查⽂本内容
If CheckIsEmpty(arrayControl) Then
Exit Sub
End If
End Sub
6.在CheckModel模块中添加AllEmpty()函数,⽤来清空窗体中的⽂本框、组合框的内容
'定义清空⽂本框或组合框的函数AllEmpty
Public Function AllEmpty(ByVal arrayControl() As Term) As Boolean
Dim termControl As Term
For Each termControl In arrayControl
If lSub Is TextBox Or lSub Is ComboBox Then                lSub.Text = ""
End If
Next
Return True
End Function
7.在frmRegister窗体中调⽤CheckEmpty()函数,清空内容。
Private Sub btnEmpty_Click(sender As Object, e As EventArgs) Handles btnEmpty.Click
Call Rdim()
If AllEmpty(arrayControl) Then
Exit Sub
End If
End Sub

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。