a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 學院 > 開發設計 > 正文

VisualBasic控件數據

2019-11-18 17:43:25
字體:
來源:轉載
供稿:網友

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

    Validate事件和CausesValidation屬性是在允許用戶將焦點移開控件之前,串聯使用以確認對控件的輸入的。例如:假設有幾個文本框和一個Help按鈕的應用程序,當每個文本框接收焦點時,您想在文本框的特殊驗證準則被滿足之前阻止用戶移動焦點;然而,您也想允許用戶在任何時候都能單擊Help按鈕。要做到這點,在Validate事件中設置驗證準則,并將Help按鈕的CausesValidation屬性設置為False。假如屬性設置為True(缺省設置),Validate事件將在第一個控件上發生。假如屬性設置為False,在第一個控件上的Validate事件將搶先發生。
    Validate事件比LostFocus事件更適合驗證數據輸入項,因為LostFocus事件(按照定義)是在焦點已移動后發生。相反,通過使用Validate事件,您能防止焦點移動到另一個控件直到驗證規則被滿足。
    可能的使用
     數據輸入項應用程序需要執行比MaskedEdit控件所提供的或在業務規則中發生的有效性驗證更復雜的數據輸入項有效性驗證。
     窗體需要防止用戶使用TAB鍵或加速鍵將控件移走,直到數據已被輸入到字段中。
     在InternetExplorer中運行的ActiveX文檔需要一種方法,使用戶在腳本程序化地移動焦點之前完成在窗體上的操作。

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

    使用控件數組
    控件數組是一組具有共同名稱和類型的控件。它們的事件過程也相同。一個控件數組至少應有一個元素,元素數目可在系統資源和內存允許的范圍內增加;數組的大小也取決于每個控件所需的內存和Windows資源。在控件數組中可用到的最大索引值為32767。同一控件數組中的元素有自己的屬性設置值。常見的控件數組的用處包括實現菜單控件和選項按鈕分組。
    注意VisualBasic包括了在運行時動態地將未引用的控件添加到Controls集合中的能力。本主題僅指在設計時通過將一個控件剪切和粘貼到窗體上添加的引用控件。有關在運行時添加控件的詳細信息,請參閱參考主題“Add方法(Controls集合)”和“Add方法(Licenses集合)”。

    為何使用控件數組
在設計時,使用控件數組添加控件所消耗的資源比直接向窗體添加多個相同類型的控件消耗的資源要少。當希望若干控件共享代碼時,控件數組也很有用。例如,如果創建了一個包含三個選項按鈕的控件數組,則無論單擊哪個按鈕時都將執行相同的代碼。
    若要在運行時創建一個控件的新實例,則新控件必須是控件數組的成員。使用控件數組時,每個新成員繼承數組的公共事件過程。
    使用控件數組機制是不可能在運行時創建新控件的,因為每個新控件都繼承為數組編寫好的事件過程。例如,如果窗體上有若干文本框,而且每個文本框都接受一個日期數值,則可創建一個控件數組,使所有文本框共享同一個合法性檢查代碼。

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


    請注意示例是如何使用object(index)語法引用每個控件的。在創建控件時指定索引值。實際上,在設計時為一個控件指定任意的索引,這將使控件成為數組的一部分。
Index屬性區分控件數組中的元素。當數組中的一個控件識別了一個事件時,VisualBasic將調用公共事件過程并傳遞一個參數(Index屬性的值),分辨是哪個控件識別事件。
    例如,Number_Click事件過程的第一行代碼是這樣的:
    
    控件數組應用程序的事件
    接著,必須添加選項按鈕和命令按鈕的事件過程。添加窗體聲明后啟動應用程序:
    DimMaxIdAsInteger
    所有選項按鈕共享Click事件過程:
    PrivateSuboptButton_Click(IndexAsInteger)
       picDisplay.BackColor=QBColor(Index 1)
    EndSub
    通過“添加”命令按鈕的Click事件過程添加新的選項按鈕。本例中,在執行Load語句前,代碼將檢查確認加載的選項按鈕數不超過十個。加載控件之后,必須將其Visible屬性設置為True。
    PrivateSubcmdAdd_Click()
       IfMaxId=0ThenMaxId=1   '設置全部選項按鈕。
       IfMaxId>8ThenExitSub   '只允許十個按鈕。
       MaxId=MaxId 1        '按鈕計數遞增。
       LoadoptButton(MaxId)      '創建新按鈕。
       optButton(0).SetFocus      '重置按鈕選項。
       '將新按鈕放置在上一個按鈕下方。
       optButton(MaxId).Top=optButton(MaxId-1)._
       Top 400
       optButton(MaxId).Visible=True  '顯示新按鈕。
       optButton(MaxId).Caption="Option"&MaxId 1
    EndSub
    通過“刪除”命令按鈕的Click事件過程刪除選項按鈕:
    PrivateSubcmdDelete_Click()
       IfMaxId<=1ThenExitSub      '保留最初的兩個按鈕。
       UnloadoptButton(MaxId)        '刪除最后的按鈕。
       MaxId=MaxId-1           '按鈕計數遞減。
       optButton(0).SetFocus         '重置按鈕選項。
    EndSub
    通過“關閉”按鈕的Click事件過程結束應用程序:
    PrivateSubcmdClose_Click()
       UnloadMe
    EndSub

->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久伊人国产 | 男女视频一区二区 | 亚洲综合无码一区二区 | 日日操视频 | 久久精品123 | 九九在线视频 | 国产精品美女视频一区二区三区 | 丁香婷婷网 | 国产精品久久久久久网站 | 国产伦理精品一区二区三区观看体验 | 色干综合 | 亚洲成人免费在线 | 亚洲精品无遮挡 | 欧美亚洲国产一区 | 日韩一区二区三区视频在线观看 | 欧美在线观看黄 | 欧美v亚洲 | 欧美人牲 | 国产成人精品二区 | 久久精品一| 91麻豆精品国产91久久久久久 | 91精品国产色综合久久不卡98 | 国产精品视频一区二区三区不卡 | 免费看片一区二区三区 | 激情久久av一区av二区av三区 | 一级久久久久 | 精品国偷自产国产一区 | 欧美日韩一区二区三区在线观看 | 一区二区久久久 | 男女午夜视频 | 亚州中文字幕蜜桃视频 | 久久精品视频在线观看 | 97成人资源 | 久久久精彩视频 | 久久精品视 | 国产精品99一区二区三区 | 亚洲国产成人av | 久久久av | 婷婷综合五月 | 国产亚洲一区二区三区在线观看 | 日本一级二级三级久久久 |