您的位置:首页 > 其它

【合作】改进判断文本框和组合框是否为空

2015-08-25 20:19 281 查看
        在个人重构机房的时候也添加了判断文本框和组合框是否为空的类,只能判断是否有空的框存在,具体是哪个没有判断出来,所以在合作的时候改进了一下,可以准确判断哪个框为空,并使其获取焦点,具体实现如下:

        【知识点】

        先添加一个判断是否为空的类,在其中定义一个结构体为Element,再定义一个Element类型的结构体数组。这部分是与以前不同的,也是实现准确判断哪个框为空的关键一步。代码如下:

<span style="font-size:18px;">    ''' <summary>
''' 定义结构体Element
''' </summary>
''' <remarks></remarks>
Public Structure Element
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
'定义一个Element类型的结构体数组
Public arrayControl() As Element</span>
        具体实现判断是否为空的方法如下:

<span style="font-size:18px;"> ''' <summary>
''' 判断部分文本框,组合框不能为空
''' </summary>
''' <param name="arrayControl">需要遍历的结构体数组</param>
''' <returns>返回Boolean值,true表示为空,false表示不为空</returns>
''' <remarks></remarks>
Public Function IsSomeEmptyText(ByVal arrayControl() As Element) As Boolean
Dim elementControl As Element                                     '声明一个element类型变量elementControl
'遍历结构体数组中的所有元素,如果控件文本为空,则进行相应提示
For Each elementControl In arrayControl                        '遍历结构体数组中所有元素
If TypeOf elementControl.controlSub Is TextBox Then        '判断控件是否为文本框
If elementControl.controlSub.Text.Trim = "" Then       '判断文本框内容是否为空
MessageBox.Show(elementControl.strText & "不能为空!", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
elementControl.controlSub.Focus()                  '为空控件获取焦点
Return True
Exit Function
End If
ElseIf TypeOf elementControl.controlSub Is ComboBox Then   '判断控件是否为组合框
If elementControl.controlSub.Text.Trim = "" Then       '判断组合框内容是否为空
MessageBox.Show(elementControl.strText & "不能为空!", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
elementControl.controlSub.Focus()                  '为空控件获取焦点
Return True
Exit Function
End If
End If
Next
Return False
End Function</span>


        以上就是判断是否为空的方法,在U层调用时非常的简单,先定义数组维数,初始化数组定义控件具体名称,再调用判断是否为空的方法就行了。这样U层那些判断是否为空并返回提示信息的代码就可以省略了,U层代码量就少了很多。

<span style="font-size:18px;">       '定义数组维数
ReDim Preserve arrayControl(2)
'初始化数组
arrayControl(0) = New Element(txtUserID, "用户名")
arrayControl(1) = New Element(txtPWD, "密码")

'调用 IsSomeEmptyText()函数,检查是否输入文本内容
If IsSomeEmptyText(arrayControl) Then
Exit Sub
End If</span>
       
【小结】

         看似一个很小的功能,如果认真想一想,也可以使系统更加的完美。之前也觉得只是显示“文本框不能为空!"很不方便,具体是什么为空并没有提示出来。如果从用户的角度来说,这样就显得有些麻烦。其实实现起来很简单,只是差迈出实践的一步。只要秉持一点“全心全意为人民服务",没有什么功能是实现不了的,关键还是自己到底想没想,想到了做没做。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  是否为空