程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> Visual Basic 控件數據

Visual Basic 控件數據

編輯:VB綜合教程

  通過限制焦點驗證控件數據

  Validate 事件和 CausesValidation 屬性是在允許用戶將焦點移開控件之前,串聯使用以確認對控件的輸入的。例如:假設有幾個文本框和一個 Help 按鈕的應用程序,當每個文本框接收焦點時,您想在文本框的特殊驗證准則被滿足之前阻止用戶移動焦點;然而,您也想允許用戶在任何時候都能單擊 Help 按鈕。 要做到這點,在 Validate 事件中設置驗證准則,並將 Help按鈕的 CausesValidation 屬性設置為 False。假如屬性設置為 True (缺省設置),Validate 事件將在第一個控件上發生。假如屬性設置為 False,在第一個控件上的 Validate 事件將搶先發生。

  Validate 事件比 LostFocus 事件更適合驗證數據輸入項,因為 LostFocus 事件(按照定義)是在焦點已移動後發生。相反,通過使用Validate 事件,您能防止焦點移動到另一個控件直到驗證規則被滿足。

  可能的使用

  數據輸入項應用程序需要執行比 Masked Edit 控件所提供的或在業務規則中發生的有效性驗證更復雜的數據輸入項有效性驗證。

  窗體需要防止用戶使用 TAB 鍵或加速鍵將控件移走,直到數據已被輸入到字段中。

  在 Internet Explorer 中運行的 ActiveX 文檔需要一種方法,使用戶在腳本程序化地移動焦點之前完成在窗體上的操作。

  在 Validate 事件上控制焦點

  Validate 事件包括一個 keepfocus 參數。當參數設置為 True時,控件將保留焦點。這樣做有效地防止了用戶單擊其它控件。

  使用控件數組

  控件數組是一組具有共同名稱和類型的控件。它們的事件過程也相同。一個控件數組至少應有一個元素,元素數目可在系統資源和內存允許的范圍內增加;數組的大小也取決於每個控件所需的內存和 Windows 資源。在控件數組中可用到的最大索引值為 32767。同一控件數組中的元素有自己的屬性設置值。常見的控件數組的用處包括實現菜單控件和選項按鈕分組。

  注意 Visual Basic 包括了在運行時動態地將未引用的控件添加到 Controls集合中的能力。本主題僅指在設計時通過將一個控件剪切和粘貼到窗體上添加的引用控件。有關在運行時添加控件的詳細信息,請參閱參考主題“Add 方法(Controls 集合)”和“Add 方法(Licenses 集合)”。

  為何使用控件數組

  在設計時,使用控件數組添加控件所消耗的資源比直接向窗體添加多個相同類型的控件消耗的資源要少。當希望若干控件共享代碼時,控件數組也很有用。例如,如果創建了一個包含三個選項按鈕的控件數組,則無論單擊哪個按鈕時都將執行相同的代碼。

  若要在運行時創建一個控件的新實例,則新控件必須是控件數組的成員。使用控件數組時,每個新成員繼承數組的公共事件過程。

  使用控件數組機制是不可能在運行時創建新控件的,因為每個新控件都繼承為數組編寫好的事件過程。例如,如果窗體上有若干文本框,而且每個文本框都接受一個日期數值,則可創建一個控件數組,使所有文本框共享同一個合法性檢查代碼。

  示例應用程序:Calc.vbp

  圖 7.2 所示的 Calculator 示例應用程序(列在 Samples!Alink("vbsamples")目錄中)包含兩個控件數組——數字按鈕和操作按鈕。

  請注意示例是如何使用 object(index) 語法引用每個控件的。在創建控件時指定索引值。實際上,在設計時為一個控件指定任意的索引,這將使控件成為數組的一部分。

  Index 屬性區分控件數組中的元素。當數組中的一個控件識別了一個事件時,Visual Basic 將調用公共事件過程並傳遞一個參數(Index 屬性的值),分辨是哪個控件識別事件。

  例如,Number_Click 事件過程的第一行代碼是這樣的:

  Private Sub Number_Click (Index As Integer)

  如果 Number(0) 識別事件,則 Visual Basic 將 0 作為 index 參數傳遞,而如果 Number(1) 識別事件,則 Visual Basic 將 1 作為 index 參數傳遞。與索引值不同,對於 Number(0) 到 Number(9) 已執行的其余 Number_Click代碼都是相同的。

  設計時創建控件數組

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved