在机房重构中,判断文本框与组合框的内容是否为空是必不可少的,如果遇到文本框较多的窗体一个一个的进行判断实在是太麻烦,而且重复代码太多。重构中避免重复代码的出现是必须的,所以可以将重复的代码封装成一个类。
【知识点】
其实很简单,可以新建一个类模块,在里面写入判断是否为空的函数,需要时就可以直接调用函数。
代码如下:
<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 & "组合框不能为空!",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>【小结】
第一次做机房的时候重复的代码真的很多,这次就尽量减少重复代码的出现,将重复代码封装调用是必不可少的。不只是判断文本框组合框是否为空的问题,像清空文本框也是一样的,以及对下机的处理,整个系统有三个地方可以下机,主界面点击下机,选中学生下机,全部学生下机,这三部分下机的代码实现是一致的,这里写三遍代码就不可取了。重复代码太多就要想办法提炼一下,避免代码坏味道。