推斷輸入資訊是否為空

weixin_33912246發表於2018-03-06
       在機房收費系統中。我們須要對文字框和組合框反覆進行推斷,確保不為空;該推斷有兩種情況,第一種,推斷視窗中全部文字框組合框是否為空,另外一種,推斷一部分文字框,組合框是否為空。對於卡號和學號等我們須要推斷使用者輸入的是否是數字。差點兒每一個視窗都須要進行相相似的推斷。一個一個去寫,熟悉了程式碼沒錯,但是,這種方法似乎不是那麼聰明哈,這個時候,我們就能夠定義一個類,專門用來進行推斷,使用該功能的視窗直接呼叫類中的方法就可以。接下來,簡介一下。該怎樣實現。

       首先,推斷視窗中全部文字框、組合框是否為空;

        

<span style="font-size:18px;">Imports System.Windows.Forms

'**********************************************
'文 件 名: verdict
'名稱空間: UI
'內    容:
'功    能: 推斷使用者輸入是否為空。推斷輸入的username等一系列是數字的文字框是否是數字
'檔案關係:
'作    者:丁國華
'小    組:寶貝計劃
'生成日期: 2014/8/5 10:32:09
'版本:V2.0
'改動日誌:
'版權說明:
'**********************************************

Public Class verdict
    ''' <summary>
    ''' 推斷視窗中全部文字框、組合框輸入內容是否為空,若視窗中有同意為空的文字框或組合框,  
    '''則不能使用此函式 
    ''' </summary>
    ''' <param name="frm"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function IsAllEmptyText(ByVal frm As Form) As Boolean
        Dim control As New Control
        For Each control In frm.Controls '遍歷視窗中全部的控制元件  
            If TypeOf control Is TextBox Then '推斷控制元件是不是文字框  
                If control.Text.Trim = "" Then '推斷文字框內容是否為空  
                    MsgBox(control.Tag.ToString + "不能為空!

", vbOKOnly, "溫馨提示") control.Focus() Return True Exit Function End If ElseIf TypeOf control Is ComboBox Then '推斷控制元件是不是組合框 If control.Text.Trim = "" Then MsgBox(control.Tag.ToString + "不能為空!", vbOKOnly, "溫馨提示") Return True Exit Function End If End If Next Return False End Function</span>

        接著。推斷一部分文字框、組合框是否為空;

         

<span style="font-size:18px;"> ''' <summary>
    ''' 推斷控制元件陣列中的控制元件的Text屬性是否為空  
    ''' </summary>
    ''' <param name="arrayControl"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function IsSomeEmptyText(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 '推斷文字框內容是否為空  
                    MsgBox(control.Tag.ToString + "不能為空!", vbOKOnly, "溫馨提示")
                    control.Focus()
                    Return True
                    Exit Function
                End If
            ElseIf TypeOf control Is ComboBox Then '推斷控制元件是不是組合框  
                If control.Text.Trim = "" Then
                    MsgBox(control.Tag.ToString + "不能為空!", vbOKOnly, "溫馨提示")
                    Return True
                    Exit Function
                End If
            End If
        Next
        Return False
    End Function</span>
          最後,推斷是否為數字;

          

<span style="font-size:18px;"> ''' <summary>
    ''' 推斷輸入的是否為數字
    ''' </summary>
    ''' <param name="arrayControl"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function IsNumberic(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 '推斷文字框內容是否為空  
                If IsNumeric(control.Text) = False Then
                    'MsgBox(control.Tag.ToString + "不能為空!

", vbOKOnly, "溫馨提示") MsgBox(control.Tag.ToString + " " + "請輸入數字", vbOKOnly, "提示") control.Focus() control.Text = "" Return False Exit Function End If End If Next Return True End Function</span>

         緊接著,我們以機房收費系統中,基本資料設定為例,看看我們是怎樣進行呼叫的;

        

<span style="font-size:18px;">        Dim arrayControl() As Control
        ReDim Preserve arrayControl(4)
        arrayControl(0) = txtRate
        arrayControl(1) = txtUnittime

        arrayControl(2) = txtLeasttime
        arrayControl(3) = txtPretime
        arrayControl(4) = txtLimitcash
        If verdict.IsSomeEmptyText(arrayControl) Then
            Exit Sub
        End If
        If verdict.IsNumberic(arrayControl) = False Then
            Exit Sub
        End If</span>
         把公共須要使用的部分,抽象出來寫成一個類,其餘的視窗直接進行呼叫。這樣方便,簡單。第二版機房收費系統。未完。待續......

 

相關文章