【重构】判断文本框组合框是否为空

在机房重构中,判断文本框与组合框的内容是否为空是必不可少的,如果遇到文本框较多的窗体一个一个的进行判断实在是太麻烦,而且重复代码太多。重构中避免重复代码的出现是必须的,所以可以将重复的代码封装成一个类。

【知识点】

其实很简单,可以新建一个类模块,在里面写入判断是否为空的函数,需要时就可以直接调用函数

代码如下:

<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>
【小结】

第一次做机房的时候重复的代码真的很多,这次就尽量减少重复代码的出现,将重复代码封装调用是必不可少的。不只是判断文本框组合框是否为空的问题,像清空文本框也是一样的,以及对下机的处理,整个系统有三个地方可以下机,主界面点击下机,选中学生下机,全部学生下机,这三部分下机的代码实现是一致的,这里写三遍代码就不可取了。重复代码太多就要想办法提炼一下,避免代码坏味道。

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...