免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

VBA知識(shí)庫(kù):列表框控件ListBox使用技巧,常用屬性與方法

 冷茶視界 2024-04-29 發(fā)布于江蘇

內(nèi)容提要

列表框控件ListBox的常用屬性與方法大家好,我是冷水泡茶,我們已經(jīng)分享過(guò)以下幾個(gè)控件的基礎(chǔ)知識(shí),可以點(diǎn)擊直達(dá)查看:

【用戶(hù)窗體UserForm】【命令按鈕CommandButton】【文本框TextBox】【標(biāo)簽Label】【復(fù)合框ComboBox】【復(fù)選框CheckBox】【選項(xiàng)按鈕OptionButton】今天我們一起來(lái)了解一下【ListBox】列表框控件。關(guān)于ListBox的案例,我們也分享過(guò)不少,感興趣的朋友可以參考:

(1)TextBox+ListBox輸入逐步提示

(2)中醫(yī)診所收費(fèi)系統(tǒng)ListBox版

(3)多列下拉列表:生產(chǎn)加工單BOM表

(4)多級(jí)聯(lián)動(dòng)下拉列表:省、市、區(qū)縣行政區(qū)劃列表錄入

(5)有人說(shuō)“比下拉菜單快10倍,這才是Excel中NO.1的輸入方法”!

(6)入庫(kù)單:動(dòng)態(tài)添加數(shù)據(jù)驗(yàn)證、日期控件、ListBox下拉框選擇錄入ListBox是一個(gè)比較常見(jiàn)的控件,相對(duì)來(lái)說(shuō),功能比【文本框TextBox】要復(fù)雜一些,如果與【復(fù)合框ComboBox】相比,各有所長(zhǎng),可謂不分伯仲吧,復(fù)合框可以看作是文本框與列表框的結(jié)合。

一、列表框基本設(shè)置,各種屬性:

1、Name,列表框的初始Name為“ListBox1”。小提示:我們可以在列表框的Name中加一個(gè)前綴“Lst”,以示區(qū)分,如果全過(guò)程只有一個(gè)ListBox,那改不改都無(wú)所謂。

2、BoundColumn,與ComboBox類(lèi)似,綁定的列,代表控件實(shí)際的值,在只有一列的情況下,無(wú)所謂,如果是多列,可以指定任何一列作為控件的值。

3、ColumnCount,顯示多列時(shí)的列數(shù),默認(rèn)為1。小提示:當(dāng)我們需要顯示多列文本時(shí),可以根據(jù)實(shí)際需要修改這個(gè)屬性的值。

4、ColumnHeads,只有在列表來(lái)源是Excel工作表時(shí)才有效,默認(rèn)值為False,這個(gè)屬性從來(lái)沒(méi)有用過(guò),也沒(méi)試過(guò)以工作表數(shù)據(jù)作為列表來(lái)源。(跟Comobox類(lèi)似)

5、ColumnWidths,列寬, 在多列的情況下設(shè)置各列的列寬:

.ColumnWidths = "40, 60"

6、IntegralHeight,用來(lái)確定控件的大小是否應(yīng)該調(diào)整以確保顯示完整的列表項(xiàng)。小提示:當(dāng)我們看到ListBox最后一項(xiàng)顯示不全時(shí),可以檢查這個(gè)屬性設(shè)置是不是設(shè)置為FALSE,把它改為T(mén)RUE。

7、List,列表框的列表,如果增加索引值參數(shù) (從0開(kāi)始),則指向具體的那一行列表項(xiàng);可以用AddItem方法添加列表項(xiàng)目,或者,我們可以把一個(gè)數(shù)組添加到ListBox的List,這點(diǎn)跟ComboBox類(lèi)似:

.List=arr.AddItem "A".List(.ListCount - 1, 1) = "A項(xiàng)目"

8、ListCount,列表項(xiàng)目計(jì)數(shù),即有多少個(gè)列表項(xiàng)目??捎糜谥付ㄗ詈笠粭l記錄,或者是可以通過(guò)ListCount計(jì)算出來(lái)的那條記錄。也經(jīng)常用于判斷列表是否為空。

9、ListIndex,用戶(hù)選中的第一項(xiàng)的索引,如果沒(méi)有選中項(xiàng),則返回-1。小提示:我們需要把點(diǎn)擊的ListBox的某一行賦值給工作表單元格時(shí),我曾經(jīng)使用循環(huán),for i =0 to listbox1.listcount-1,再用if listbox1.selected(i)=true 來(lái)確定所選中的行。實(shí)際上不需要那么做,可以直接用ListIndex來(lái)引用選中的行:

With ListBox1    For i = 1 To .ColumnCount - 1        Cells(Selection.Row, i + 1) = .List(.ListIndex, i)    NextEnd With

10、ListStyle,設(shè)置列表項(xiàng)在ListBox中的顯示方式:(1)0-fmListStylePlain,以普通文本的形式顯示。(2)1-fmListStyleOption: 每項(xiàng)旁邊都顯示一個(gè)選項(xiàng)按鈕。

11、MultiSelect: 設(shè)置ListBox的選擇模式,單選還是多選,我主要使用單選,多選的情況好像還沒(méi)有用過(guò):(1)0-fmMultiSelectSingle,單選。(2)1-fmMultiSelectMulti: 多選,僅用鼠標(biāo)點(diǎn)選。(3)2-fmMultiSelectExtended: 擴(kuò)展多選,鼠標(biāo)結(jié)合Shitf、Ctrl鍵使用。

12、.....。

二、列表框的方法:1、Additem,添加列表項(xiàng)目。

小提示:如果是單列,直接添加item名稱(chēng)即可,如果是多列,還需要添加其他列的內(nèi)容,與ComboBox類(lèi)似:

With Me.ListBox2    .Clear    .MultiSelect = fmMultiSelectMulti    .ListStyle = 1    .List = arr    .AddItem "A"    .List(.ListCount - 1, 1) = "A項(xiàng)目"End With2、Clear,清除ListBox 中的所有內(nèi)容,一般在窗體啟動(dòng)后,需要重新添加ListBox的List的時(shí)候,在使用AddItem方法的情況下,為了避免重復(fù)添加列表項(xiàng),需要使用Clear方法清除原有列表項(xiàng),如果是對(duì)整個(gè)List重新使用數(shù)組、字典一次性賦值,可以不用Clear。3、RemoveItem,移除列表項(xiàng),參數(shù)為列表項(xiàng)的索引值,這個(gè)方法沒(méi)怎么用過(guò),下面的代碼移除第一個(gè)、最后一個(gè)項(xiàng)目,連續(xù)執(zhí)行,會(huì)移除所有列表項(xiàng)目,相當(dāng)于Clear,添加If判斷列表是否有項(xiàng)目,防止報(bào)錯(cuò):

With Me.ListBox2    '//移除第一個(gè)    If .ListCount > 0 Then        .RemoveItem 0    End If    '//移除最后一個(gè)    If .ListCount > 0 Then        .RemoveItem .ListCount - 1    End IfEnd With4、SetFocus,把焦點(diǎn)移到ListBox。

三、列表框ListBox的事件:1、Click事件,點(diǎn)擊事件,可以取得點(diǎn)擊項(xiàng)目的值,賦值給單元格或其他控件。2、DbClick事件,雙擊事件,與單擊事件一樣,可以取得點(diǎn)擊項(xiàng)目的值,賦值給單元格或其他控件。與單擊的區(qū)別可能就在于,單擊有點(diǎn)快,有時(shí)候我們都不能確定點(diǎn)擊了正確的選項(xiàng),而雙擊,我們可以先點(diǎn)擊一下,看清楚點(diǎn)擊的是哪一行,再雙擊。另外,我們可能會(huì)習(xí)慣性地在列表框中點(diǎn)來(lái)點(diǎn)去,但并不是要選擇哪個(gè)項(xiàng)目,這種情況,我們用DbClick事件就比較適合,避免誤點(diǎn)。3、其他事件......。四、總結(jié),

1、ListBox有不少屬性與方法和ComboBox相似,我覺(jué)得是不是應(yīng)該ListBox在先,然后才有的ComboBox,或者說(shuō)我們應(yīng)該先介紹ListBox,然后再介紹ComboBox,這樣可能感覺(jué)更順當(dāng)一些;

2、我們通常利用ListBox來(lái)展示一個(gè)列表,然后通過(guò)Click或DbClick事件取得點(diǎn)擊的項(xiàng)目,賦值給特定工作表單元格,或其他控件。

3、我們?cè)诎袻istBox作為一個(gè)輸入?yún)⒖紩r(shí),經(jīng)常會(huì)頻繁地使用Visible屬性。點(diǎn)擊目標(biāo)單元格,設(shè)置ListBox的visible=TRUE,顯示ListBox控件,在點(diǎn)擊ListBox完成選擇輸入后,設(shè)置Listbox的visible=FALSE,隱藏控件。

4、ListBox功能還算強(qiáng)大,但它也有局限性:

(1)沒(méi)有表頭,雖然說(shuō)可以引用工作表的表頭,但我覺(jué)得太雞肋,也從沒(méi)有用過(guò)。在【中醫(yī)診所收費(fèi)系統(tǒng)ListBox版】中我是把表頭作為第一行記錄添加進(jìn)去的,這樣操作起來(lái)比較麻煩,在ListBox點(diǎn)擊事件中,我們首先得判斷點(diǎn)擊的是不是第一行,如果不是,才給其他控件賦值。

(2)列數(shù)有限制,具體多少我也記不清了,懶得去查。還拿【中醫(yī)診所收費(fèi)系統(tǒng)ListBox版】說(shuō)事,由于數(shù)據(jù)明細(xì)表項(xiàng)目比較多,ListBox已經(jīng)容納不下了,當(dāng)時(shí)也不知道有ListView控件這回事,我只好把有些字段進(jìn)行了合并。后來(lái),很多情況下,我會(huì)使用ListView來(lái)展示數(shù)據(jù)。好,今天就這樣,我們下期再會(huì)。~~~~~~End~~~~~~

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多