1. 程式人生 > >控制元件集合VB.NET用Controls集合對為空的控制元件進行遍歷

控制元件集合VB.NET用Controls集合對為空的控制元件進行遍歷

題記:寫這篇部落格要主是加深自己對控制元件集合的認識和總結實現演算法時的一些驗經和訓教,如果有錯誤請指出,萬分感謝。

一、需求

            面對比較複雜的系統,我們大多是須要對文字框、組合框停止重複判斷,以保證它們不為空。

二、計劃

    1、每一個窗體有一個Controls集合,代表窗體中出現的所有控制元件(如文字框、命令按鈕和標籤),應用該Controls集合,可以很容易地實現使用者錄入的有效性檢測工作(VB.NET)。

    延伸:Forms集合包含VB.NET專案中的所有窗體。     

    2、例項

          定義一個類,專門用來停止判斷。別的窗體直接呼叫類中方法便可停止判斷。

//停止判斷的類

Public ClassVerifyUser

    Public Function verify(log AsWindows.Forms.Control.ControlCollection) As Boolean

 

        Dim ConObject As Control                                             '宣告一個Control類的例項

        Dim flag As Boolean                                                  '宣告boolean型變數,用來給呼叫此方法的窗體返回資訊

        flag = True                                                          '默許控制元件內都有值

 

        '開始遍歷Control類中的每一個控制元件

        For Each ConObject In log                                             '利用TypeOf檢視控制元件型別

            If TypeOf (ConObject) Is TextBoxThen                             '若文字框的Text屬性為空,提示資訊

                If ConObject.Text ="" Then                                   '.Tag代表當前為空的控制元件

                   MsgBox(ConObject.Tag.ToString + "不能為空,請輸入完全", vbOKOnly,"提示")

                    flag = False                                              '此控制元件為空,返回資訊

                End If

            ElseIf TypeOf (ConObject) IsComboBox Then   '組合框為空時,彈出資訊

                If ConObject.Text ="" Then

                   MsgBox(ConObject.Tag.ToString + "不能為空,請輸入完全" + vbOKOnly +"提示")

                    flag = False

                End If

            End If

        Next

 

        Return flag

    End Function

End Class
    每日一道理 
時間好比一條小溪,它能招引我們奔向生活的海洋;時間如同一葉扁舟,它將幫助我們駛向理想的彼岸;時間猶如一支畫筆,它會指點我們描繪人生的畫卷。
//呼叫此類的方法

 '判斷是否為空,停止提示

          Dim MyObjectAs New VerifyUser

           IfMyObject.verify(Controls) = False Then

          txtUserID.Focus()

          txtUserID.SelectAll()

              Exit Sub

            End If

    注:

    (1)for each迴圈中,逐個處置Controls集合中的每一個控制元件。If語句對控制元件型別停止檢測。若控制元件為Text控制元件,則應用Text屬性檢測該文字框中的文字。若文字框為空,則出現提示。

    (2)必須有相應的判斷,呼叫此類時,邏輯才會清晰。

    (3)Control是.NET提供的類,它是所有控制元件的基類,在System.Windows.Form名稱空間中。

    (4)Type…Is運算子檢測物件型別。如果物件是指定型別或從指定型別派生而來,則返回True。

三、不足

             此方法遍用時是從後向前彈出對話方塊。比如:使用者名稱和密碼都為空,它會先彈出密碼不能為空,再彈出使用者名稱不能為空。我們如果採取此方法,在放置控制元件時需注意一下次序。

四、借鑑

         王海濤師哥:它這裡涉及到對部份控制元件停止檢測

文章結束給大家分享下程式設計師的一些笑話語錄: 《諾基亞投資手機瀏覽器UCWEB,資金不詳或控股》杯具了,好不容易養大的閨女嫁外國。(心疼是你養的嗎?中國創業型公司創業初期哪個從國有銀行貸到過錢?)

--------------------------------- 原創文章 By 
控制元件和集合
---------------------------------