小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VBA知識(shí)庫(kù):復(fù)合框ComboBox,下拉列表,常用屬性與方法

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

點(diǎn)【關(guān)于本公眾號(hào)】了解一下,歡迎關(guān)注謝謝!

快速瀏覽

實(shí)用案例

|日期控件||簡(jiǎn)單的收發(fā)存||收費(fèi)管理系(Access改進(jìn)版)|

|電子發(fā)票管理助手||電子發(fā)票登記系統(tǒng)(Access版)|

|文件合并||表格拆分||審計(jì)憑證抽查底稿|

|中醫(yī)診所收費(fèi)系統(tǒng)(Excel版)||中醫(yī)診所收費(fèi)系統(tǒng)(Access版)||銀行對(duì)賬單自動(dòng)勾對(duì)|

|印章使用登記系統(tǒng)|

收費(fèi)使用項(xiàng)目

|財(cái)務(wù)管理系統(tǒng)||工資薪金和年終獎(jiǎng)個(gè)稅籌劃||新稅法下工資表模版|

內(nèi)容提要

  • 復(fù)合框ComboBox常用屬性與方法
  • 復(fù)合框ComboBox添加下拉列表
大家好,我是冷水泡茶,前些日子我們分享過(guò)幾個(gè)控件的基礎(chǔ)知識(shí):
用戶(hù)窗體UserForm】【命令按鈕CommandButton】【文本框TextBox】【標(biāo)簽Label】,今天我們一起來(lái)了解一下【復(fù)合框ComboBox】控件,跟前面類(lèi)似的屬性與方法我們就盡量略過(guò)
ComboBox是一個(gè)兼有文本框、列表框功能的控件,所以稱(chēng)為“復(fù)合框”,好像也有稱(chēng)為“組合框”的。

一、復(fù)合框基本設(shè)置,各種屬性:

1、Name,復(fù)合框的初始Name為“ComboBox1”。

小提示:我們可以在復(fù)合框的Name中加一個(gè)前綴“Cmb”,以示區(qū)分。

2、BorderStyle,邊框樣式:

(1)fmBorderStyleNone (0): 無(wú)邊框;
(2)fmBorderStyleSingle (1): 單線邊框
默認(rèn)是沒(méi)有邊框,這個(gè)我基本也很少去改它。
小提示當(dāng)我們修改邊框之后,我們?nèi)绻牖謴?fù)到初始樣式,我們會(huì)發(fā)現(xiàn),不管是改成無(wú)邊框還是有邊框,都跟初始樣式不一樣:
原因是在下面還有一個(gè)屬性:SpecialEffect,當(dāng)我們修改邊框后,它也發(fā)生了改變,變成了0-fmSecialEffectFlat,平面的。
我們把它改為2-fmSpecialEffectSunken,下沉,這樣就應(yīng)該恢復(fù)成原來(lái)的樣子了。

3、BoundColumn,字面意思是“綁定的列”,是指在復(fù)合框顯示為多列時(shí),哪一列代表了控件的值(Value),即,雖然我們看到多列,其實(shí)只有一列代表ComboBox的Value,默認(rèn)為1,即第一列,可以根據(jù)實(shí)際需要修改。

4、ColumnCount,顯示多列時(shí)的列數(shù),默認(rèn)為1。

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

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

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


.ColumnWidths = "20, 80"

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




.List=arr.AddItem "D".List(.ListCount - 1, 1) = "project d"

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


.Text=.List(.ListCount - 1)

9、Style,是否可以自由輸入文本:

(1)0-fmStyleDropDownCombo,可以自由輸入本文。
(2)2-fmStyleDropDownList,只能從列表中選擇。
小提示假設(shè)我們要錄入數(shù)據(jù),保存到“明細(xì)表”中,“明細(xì)表”中有一列“項(xiàng)目”,我們通過(guò)復(fù)合框來(lái)錄入:
A、當(dāng)我們要求輸入內(nèi)容嚴(yán)格限制在列表中的時(shí)候,我們把Style的值設(shè)置為2,對(duì)于列表的來(lái)源應(yīng)該設(shè)置為一個(gè)單獨(dú)的表,比如“項(xiàng)目表”,當(dāng)需要輸入不在列表中的項(xiàng)目時(shí),我們需要在“項(xiàng)目表“中進(jìn)行添加,把“項(xiàng)目表”作為復(fù)合框的列表來(lái)源,然后才能在復(fù)合框中選擇輸入;
B、當(dāng)我們不想單獨(dú)維護(hù)上述的“項(xiàng)目表”,我們可以把“明細(xì)表”中的項(xiàng)目作為復(fù)合框的列表來(lái)源,同時(shí),把復(fù)合框的Style設(shè)置為0,這樣,如果需要輸入的項(xiàng)目已錄入過(guò),那么可以從列表中選擇,如果列表中沒(méi)有,我們可以直接在復(fù)合框中輸入,保存后,下次再錄入時(shí),前次錄入的項(xiàng)目應(yīng)該包含在列表中了。

10、Text,顯示文本,有的時(shí)候,在窗體啟動(dòng)時(shí),我們先給ComboBox一個(gè)默認(rèn)的選項(xiàng)。



.Text=.list(0) '//第一個(gè).Text=.List(.ListCount-1) '//最后一個(gè)

11、TextColumn,指定在復(fù)合框的文本框中顯示的是哪一列的文本。

12、Value,值,在多列的情況下,如果設(shè)置了BoundColumn則為綁定的那一列的值,否則則為默認(rèn)的第一列,如果同時(shí)設(shè)置了TextColumn,那復(fù)合框顯示的文本(text)與其值(Value)可能會(huì)不一致。

13、......。

二、復(fù)合框的方法:

1、Additem,添加列表項(xiàng)目。

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








 With Me.ComboBox2    .ColumnCount = 2    .ColumnWidths = "20, 80"    .AddItem "D"    .List(.ListCount - 1, 1) = "project d"     .AddItem "E"    .List(.ListCount - 1, 1) = "project E"End With

2、Clear,清除ComboBox中的所有選項(xiàng),一般在窗體啟動(dòng)后,需要重新添加ComboBox的List的時(shí)候,使用AddItem方法的情況下可能會(huì)用到,如果是對(duì)整個(gè)List重新使用數(shù)組、字典一次性賦值,似乎不需要clear,當(dāng)然Clear一下也沒(méi)毛病。

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.ComboBox1    '//移除第一個(gè)    If .ListCount > 0 Then        .RemoveItem 0    End If    '//移除最后一個(gè)    If .ListCount > 0 Then        .RemoveItem .ListCount - 1    End IfEnd With

4、SetFocus,把焦點(diǎn)移到ComboBox。

5、DropDown,ComboBox獲得焦點(diǎn)后自動(dòng)打開(kāi)下拉列表,不需要我們?cè)偃c(diǎn)下拉箭頭。

三、復(fù)合框ComboBox的事件:

1、Change事件,當(dāng)我們選擇一個(gè)列表項(xiàng)目,或者在ComboBox的文本框中輸入內(nèi)容時(shí),觸發(fā)Change事件,我們可以根據(jù)ComboBox的Text來(lái)進(jìn)行進(jìn)一步處理,例如,把ComboBox的Text作為關(guān)鍵字進(jìn)行數(shù)據(jù)篩選,在ListBox、ListView等控件中顯示篩選后的內(nèi)容,也可以根據(jù)多個(gè)ComboBox設(shè)置多級(jí)聯(lián)動(dòng)下拉菜單。

2、其他事件用得較少,就不多啰嗦了。即便是Change事件,我們有時(shí)候也需要謹(jǐn)慎使用,特別是查詢(xún)大量數(shù)據(jù)的時(shí)候,我們可以不用Change事件,而是用一個(gè)命令按鈕,等ComboBox輸入妥當(dāng)以后,再點(diǎn)命令按鈕(比如“查詢(xún)”)來(lái)查詢(xún)、加載數(shù)據(jù),盡量避免在輸入錯(cuò)誤或不完整的情況下,還去查詢(xún)數(shù)據(jù),這樣就影響效率了。

四、總結(jié),

1、復(fù)合框ComboBox是一個(gè)非常有用的控件,在數(shù)據(jù)輸入方面可以起到一個(gè)很好的規(guī)范作用;

2、用好復(fù)合框,最為關(guān)鍵的一點(diǎn)是如何添加List,可以使用AddItem方法添加,也可以通過(guò)數(shù)組、字典的keys、Items來(lái)一次性添加

好,今天就這樣我們下期再會(huì)。
~~~~~~End~~~~~~

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

    0條評(píng)論

    發(fā)表

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

    類(lèi)似文章 更多