在机房重构中,判断文本框与组合框的内容是否为空是必不可少的,如果遇到文本框较多的窗体一个一个的进行判断实在是太麻烦,而且重复代码太多。重构中避免重复代码的出现是必须的,所以可以将重复的代码封装成一个类。
【知识点】
其实很简单,可以新建一个类模块,在里面写入判断是否为空的函数,需要时就可以直接调用函数。
代码如下:
<span style="font-size:18px;">''' <summary>
''' 判断文本框,组合框不能为空
''' </summary>
''' <param name="arrayControl"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function IsEmptyText(ByVal arrayControl() As Control) As Boolean
Dim control As New Control
'遍历结构体数组中的所有元素,如果控件文本为空,则给出警告提示
For Each control In arrayControl '遍历数组中所有元素
If TypeOf control Is TextBox Then '判断控件是不是文本框
If control.Text.Trim = "" Then '判断文本框内容是否为空
MessageBox.Show(control.Text & "文本框不能为空!", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
control.Focus()
Return True
Exit Function
End If
ElseIf TypeOf control Is ComboBox Then '判断控件是不是组合框
If control.Text.Trim = "" Then
MessageBox.Show(control.Text & "组合框不能为空!", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
control.Focus()
Return True
Exit Function
End If
End If
Next
Return False
End Function</span>
调用该函数时就可以这样写:
<span style="font-size:18px;"> '判断是否为空()
Dim arrayControl() As Control
ReDim Preserve arrayControl(2)
arrayControl(0) = txtUserID
arrayControl(1) = txtUserPWD
If IsEmptyText(arrayControl) Then
Exit Sub
End If</span>
【小结】
第一次做机房的时候重复的代码真的很多,这次就尽量减少重复代码的出现,将重复代码封装调用是必不可少的。不只是判断文本框组合框是否为空的问题,像清空文本框也是一样的,以及对下机的处理,整个系统有三个地方可以下机,主界面点击下机,选中学生下机,全部学生下机,这三部分下机的代码实现是一致的,这里写三遍代码就不可取了。重复代码太多就要想办法提炼一下,避免代码坏味道。