9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學習啦 > 知識大全 > 知識百科 > 百科知識 > 什么是控件數組控件數組的優點

什么是控件數組控件數組的優點

時間: 謝君787 分享

什么是控件數組控件數組的優點

  控件數組是一組具有相同名稱和類型的控件的集合,通過各自的編號(下標)來識別,并且可以共享事件。那么你對控件數組了解多少呢?以下是由學習啦小編整理關于什么是控件數組的內容,希望大家喜歡!

  控件數組的概述

  在設計時,有三種辦法創建控件數組:更改控件的Index屬性、將已有的控件復制到同一窗體中、使多個同類型的控件的名稱(Name屬性)相同。

  更改Index屬性

  選擇一個控件,按F4打開“屬性”面板,找到“Index”屬性,將其更改為一個0和32767之間(包括0和32767)的且未被用于其他控件索引值的整數,即可創建一個以原控件名稱為名稱的控件數組。

  復制已有控件

  若已有一控件名為Command,右擊該控件,單擊快捷菜單中的“復制”,再右擊控件所在窗體(或其中的一個類似Frame的容器控件),單擊快捷菜單中的“粘貼”,VB會彈出一個對話框,顯示“已經有一個控件為 'Command'。創建一個控件數組嗎?”單擊“是”按鈕,就可創建一個名稱(Name屬性)為“Command”的控件數組,被復制的控件為Command(0),粘貼的控件為Command(1)。

  使控件名相同

  若已有一控件名為Command,將另一同類型控件的Name屬性改為“Command”后,VB也會彈出一個對話框,單擊“是”即可創建一控件數組。

  運行時增減對象添加對象

  在VB中,不能在運行時直接創建一個原先不存在的控件數組,但可以使用Load函數為已存在的控件數組添加同類型的控件。

  假設已有一個控件數組名為“Command”,數組中只有一個對象“Command(0)”,在運行時,可以通過下面的代碼增加一個對象“Command(1)”。

  PrivateSubCommand_Click(IndexAsInteger)'控件數組中控件的點擊事件LoadCommand(1)'添加Command(1)Command(1).Top=0'將Command(1)移至頂端Command(1).Visible=True'將Command(1)設置為可見EndSub

  說明:

  此處的Load函數的語法如下:

  Load Object (Index As Integer)

  Load函數參數

  參數

  描述

  Object

  必選,對象表達式,要添加控件的控件數組名稱。

  Index

  必選,數值表達式,0~32767的一個整數,被添加的控件在控件數組中的索引值(Index屬性),該值必須未被引用。

  運行時在一個控件數組中添加了新的控件后,新控件除Index、TabIndex和Visible屬性外,其余屬性與該控件數組中Index屬性最小的控件的相應屬性完全相同。而Index屬性在Load函數中指定,TabIndex屬性取VB規定的默認數值(比其他任何控件都大),Visible為False。所以需要改變新控件的Left或Top,以及Visible屬性后才能看到它。

  這里的代碼僅設計用于添加Command(1),即使Command中的按鈕被點擊兩次,也不能添加Command(2),而是會返回“對象已經加載”的錯誤。為了不斷添加控件,可以使用下面的代碼。

  PrivateSubCommand_Click(IndexAsInteger)'控件數組中控件的點擊事件IfCommand.UBound=32767ThenExitSubLoadCommand(Command.UBound+1)'添加控件Command(Command.UBound).Top=Command.UBound*150'移動新控件Command(Command.UBound).Visible=True'將新控件設置為可見EndSub

  控件數組的UBound屬性返回該控件數組中控件的最大下標(索引值),添加索引值為Command.UBound+1(不大于32767)的控件數組元素可以保證不發生“對象已經加載”的錯誤。但是,由于控件數組中每個控件的索引值并不一定是連續的,即可以只添加Command(1)和Command(3)而不添加Command(2),所以即使控件數組最大索引值為32767,該控件數組也不一定有32767個對象。

  刪除對象

  運行時可以使用Unload函數刪除控件數組中運行時創建的控件,但設計時創建的控件不能刪除。如:

  UnloadCommand(1)

  Unload函數語法與Load函數語法相似。

  屬性概述

  每個控件數組本身都有4個屬性,這4個屬性都是設計時無效、運行時只讀的;而一個單獨的控件還有和控件數組相關的Index屬性。

  Count屬性

  Object.Count As Long

  返回控件數組中的元素個數。

  Item屬性

  Object.Item (IndexAs Integer) As Object

  返回控件數組中指定下標的控件,相當于Object(IndexAs Integer) As Object。

  LBound和UBound屬性

  Object.LBound As Integer

  Object.UBound As Integer

  返回控件數組中下標的最小值(LBound)或最大值(UBound)。

  Index屬性

  Object.Index As Integer

  (0≤Object.Index≤32767)

  這個屬性應用于控件數組中的一個控件,作用是返回或設計時設置控件在其控件數組中的下標,僅當Object屬于某一控件數組時有效。

  示例

  已有一個名為“Commands”的Command控件數組,其中有一大小為900緹×450緹的Commands(0)控件。運行時單擊Commands(0),則向控件數組中添加一個新控件并顯示在前一個控件下方75緹處,Caption屬性為其Index屬性值;單擊其他控件時,則從控件數組中刪除該控件。

  PrivateSubCommands_Click(IndexAsInteger)WithCommandsIfIndex=0ThenIf.UBound=32767ThenExitSubLoad.Item(.UBound+1).Item(.UBound).Caption=.UBound.Item(.UBound).Top=(75+450)*.UBound+75.Item(.UBound).Visible=TrueElseUnload.Item(Index)EndIfEndWithEndSub

  這里用到了With語句,在With ... End With語句塊中可以省略“Commands”標識符而直接引用其屬性。

  控件數組的優點

  一方面,使用控件數組所占用的資源比單獨添加每個控件所占用的資源更少,另一方面,因為控件數組的事件可以共享,如果要使多個同類型控件在一個事件中執行相同或類似的代碼,使用控件數組比單獨創建多個控件更方便,代碼也更容易維護。

  例如,在一個窗體中有若干個Command控件,顯示的內容是從1開始編號,要讓用戶單擊某按鈕時,彈出一個窗口顯示其編號的平方,若不使用控件數組,則要為Command1、Command2、……、Command10控件一一添加Click事件的代碼;如果日后要調整顯示內容,則要一一修改每個控件的代碼,非常繁瑣。而控件數組就能用類似下面的代碼很好地解決這個問題:

  PrivateSubCommands1_Click(IndexAsInteger)

  MsgBoxIndex^2

  EndSub
看過“控件數組的優點”的人還看了:

1.VB教程視頻:數組的定義

2.VB教程視頻:Print方法有關的函數

3.程序員必備的600個英語詞匯

4.VB視頻教程:圖形和頂邊、左邊位置

5.VB教程視頻:文本控件

6.VB教程視頻:字形的設置

1659896 主站蜘蛛池模板: 国产69精品久久久久99尤物| 亚洲日韩性欧美中文字幕| 一级做a爰片久久毛片下载| 国产精品普通话国语对白露脸| 国内精品久久久久影院日本| 欧美日韩精品一区二区视频| 女人与公狍交酡女免费| 国产99视频精品免费观看9| 色欲综合久久中文字幕网| 国产精品国产三级国产专| 最新中文字幕国产精品| 日本在线a一区视频高清视频| 国产精品一区二区三区日韩| 久久国产精品精品国产色| 成人特黄特色毛片免费看 | 午夜AAAAA级岛国福利在线| 亚洲综合无码明星蕉在线视频| 永久免费无码av在线网站| 成年在线观看免费人视频| 亚洲AV国产福利精品在现观看| 日产国产一区二区不卡| 人妻少妇精品中文字幕| 最新亚洲人成网站在线影院 | 最新亚洲av日韩av二区| 久久av中文字幕资源网| 怡春院欧美一区二区三区免费 | 人妻少妇无码精品专区| 尤物国精品午夜福利视频| 亚洲av二区伊人久久| 国产精品国产自产拍高清| 亚洲精品国产老熟女久久| 国产v综合v亚洲欧美大天堂| 体验区试看120秒啪啪免费| 青青青青久久精品国产| 国产精品一二三区久久狼| 真实单亲乱l仑对白视频| 少妇高潮喷水正在播放| 国产又爽又黄的激情视频| 欧美人成精品网站播放| 日韩中文字幕人妻一区| 成人一区二区不卡国产|