一、組合框控件的主要屬性:
新撫網站建設公司創(chuàng)新互聯,新撫網站設計制作,有大型網站制作公司豐富經驗。已為新撫成百上千家提供企業(yè)網站建設服務。企業(yè)網站搭建\外貿網站建設要多少錢,請找那個售后服務好的新撫做網站的公司定做!
列表框控件的大部分屬性同樣適合于組合框,此外,組合框還有一些自己的一些屬性:
1、Style(類型)屬性
組合框共有三種 Style :
當值為 0 ,組合框是“下拉式組合框”(DropDown Combo),與下拉式列表框相似,但不同的是,下拉式組合框可以通過輸入文本的方法在表項中進行選擇,可識別 Dropdown 、Click、Change 事件,
當值為 1 ,組合框稱為“簡單組合框”(Simple Combo),由可以輸入文本的編輯區(qū)與一個標準列表框組成,可識別 Change 、DblClick 事件,
當值為 2 ,組合框稱為“下拉式列表框”(Dropdown ListBox),它的右邊有個箭頭,可供“拉下”或“收起”操作。它不能識別 DblClick 及 Change 事件,但可識別 Dropdown 、Click 事件
綜上所述,如果你想讓用戶能夠輸入項目,則應將組合框設置成 0 或 1 ,如果只想讓用戶對已有項目進行選擇,則應將組合框設置成 2 。
2、Text(文本)屬性:
本屬性值返回用戶選擇的文本或直接在編輯區(qū)域輸入的文本,可以在界面設置時直接輸入
但要顯示多個選項,不能簡單地用 Text 屬性指定,因為后一選項會覆蓋前面的選項,這時,常常要用到窗體的載入事件。(Form_Load)
Form_Load 的意思是,在打開窗口的同時,將指定的內容載入。
二、組合框的事件:
根據組合框的類型,它們所響應的事件是不同的。
例如,當組合框的 Style 屬性為 1 時,能接收 DblClick 事件,而其他兩種組合框能夠接收 Click 與 Dropdown 事件;當 Style 屬性為 0 或 1 時,文本框可以接收 Change 事件。
三、組合框的方法:
跟列表框一樣,組合框也適用 AddItem 、Clear 、RemoveItem 方法。
預先準備三個圖標文件,用于樹型控件中顯示磁盤符號和文件夾的圖像之用。
1、窗體上添加控件如下:
組合框控件 ComboBox1,樹型控件 TreeView1,列表框控件 ListBox1,圖像列表控件 ImageList1。
選中TreeView1,設置其ImageList屬性為ImageList1。
2、設置屬性
選中圖像列表控件 ImageList1,在屬性窗口里,選中屬性Images,單擊三個小點按鈕,出現圖像集合編輯器窗口,單擊[添加按鈕],一一把準備好的圖標文件進行添加,注意先后次序,如果不符合要求可以通過上下移動按鈕重新改變次序。完成后單擊[確定]。
運行圖如下:
完整代碼如下:
Imports?System.IO
Public?Class?Form1
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
'添加系統所有磁盤目錄符號
For?Each?MyDrive?As?String?In?Environment.GetLogicalDrives()
ComboBox1.Items.Add(MyDrive)
Next
'顯示第一個磁盤符號
ComboBox1.Text?=?ComboBox1.Items(0)
End?Sub
'遞歸過程添加目錄樹
Public?Sub?AddDirectory(ByVal?strFatherPath?As?String,?ByVal?strPath?As?String,?ByVal?nodeFather?As?TreeNode)
Dim?i?As?Integer
Dim?Mynode?As?New?TreeNode
'先添加本目錄
Mynode.Text?=?Strings.Replace(strPath,?strFatherPath??"\",?"",?,?1)
'為節(jié)點指定未被選中時顯示的圖標
Mynode.ImageIndex?=?1
'為節(jié)點指定被選中時顯示的圖標
Mynode.SelectedImageIndex?=?2
nodeFather.Nodes.Add(Mynode)
Application.DoEvents()
Try
Dim?str()?As?String?=?Directory.GetDirectories(strPath)
'遞歸遍歷該目錄的子文件夾
For?i?=?0?To?str.GetUpperBound(0)
AddDirectory(strPath,?str(i),?Mynode)
Next
Catch?ex?As?Exception
Debug.WriteLine(ex.Message)
End?Try
Mynode?=?Nothing
End?Sub
'根據給出的盤符添加目錄樹
Private?Sub?AddRootDirectory(ByVal?DiscSymbol?As?String)
Dim?Nynode?As?New?TreeNode
'先把磁盤盤符添加到樹中
TreeView1.Nodes.Clear()
Nynode.ImageIndex?=?0
Nynode.Text?=?DiscSymbol
Nynode.SelectedImageIndex?=?-1
TreeView1.Nodes.Add(Nynode)
Dim?i?As?Integer
'獲取磁盤根目錄下的文件夾
Dim?str()?As?String?=?Directory.GetDirectories(DiscSymbol??"\")
For?i?=?0?To?str.GetUpperBound(0)
'調用遞歸過程遍歷該文件夾里的所有子文件夾,并添加到樹型控件
AddDirectory(DiscSymbol,?str(i),?Nynode)
Next
Nynode?=?Nothing
End?Sub
Private?Sub?ComboBox1_SelectedIndexChanged(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?ComboBox1.SelectedIndexChanged
'根據磁盤符號的變更,顯示根目錄里的文件
ListBox1.Items.Clear()
For?Each?MyFile?As?String?In?System.IO.Directory.GetFiles(ComboBox1.Text)
ListBox1.Items.Add(MyFile)
Next
'根據磁盤符號的變更,重新顯示目錄樹
Dim?DiscSymbol?As?String
DiscSymbol?=?Microsoft.VisualBasic.Left(ComboBox1.Text,?Len(ComboBox1.Text)?-?1)
Call?AddRootDirectory(DiscSymbol)
End?Sub
'遞歸過程根據子目錄尋找上級目錄名--從而構成完整的目錄路徑
Private?Sub?AllPath(ByVal?ThisNode?As?TreeNode,?ByRef?MyPathName?As?String)
If?ThisNode.Level??1?Then
'該節(jié)點層數大于1,其父節(jié)點不是磁盤根目錄
MyPathName?=?ThisNode.Parent.Text??"\"??MyPathName
Dim?MyNode?As?TreeNode?=?ThisNode.Parent
Call?AllPath(MyNode,?MyPathName)
Else
'該節(jié)點層數等于1,其父節(jié)點就是磁盤根目錄
MyPathName?=?ComboBox1.Text??MyPathName
End?If
End?Sub
Private?Sub?TreeView1_AfterSelect(ByVal?sender?As?System.Object,?ByVal?e?As?System.Windows.Forms.TreeViewEventArgs)?Handles?TreeView1.AfterSelect
'為了搜索選中的節(jié)點對應目錄的文件,需要組成全路徑
Dim?MyAllPathName?As?String?=?TreeView1.SelectedNode.Text
Dim?MyNode?As?TreeNode?=?TreeView1.SelectedNode
If?TreeView1.SelectedNode.Level?=?0?Then
'如果選中的是根節(jié)點
MyAllPathName?=?ComboBox1.Text
Else
'如果選中的是非根節(jié)點,調用遞歸過程組成全路徑
Call?AllPath(MyNode,?MyAllPathName)
MyAllPathName?=?MyAllPathName??"\"
End?If
'根據路徑,搜索文件名并顯示
ListBox1.Items.Clear()
For?Each?MyFile?As?String?In?System.IO.Directory.GetFiles(MyAllPathName)
ListBox1.Items.Add(MyFile)
Next
End?Sub
End?Class
Combobox(組合框)控件相當于將文本框和列表框的功能結合在一起。這個控件可以實現輸入文本來選定項目,也可以實現從列表中選定項目這兩種選擇項目的方法。如果項目數超過了組合框能夠顯示的項目數,控件上將自動出現滾動條。用戶可以上下或左右滾動列表。
1.使用組合框和列表框
通常,組合框適用于建議性的選項列表,而當希望將輸入限制在列表之內時,應使用列表框。組合框包含編輯區(qū)域,因此可將不在列表中的選項輸入列區(qū)域中。此外,組合框節(jié)省了窗體的空間。只有單擊組合框的向下箭頭時(Style屬性值為1的組合框除外,它總是處于下拉狀態(tài))才顯示全部列表,所以無法容納列表框的地方可以很容易地容納組合框。
2.組合框的樣式
此處有三種組合框樣式。每種樣式都可在設計時或運行時來設置,而且每種樣式都使用數值或相應的Visual Basic常數來設置組合框的樣式。
樣式值常數:下拉式組合框值為0,Vb.net中的常數值為DropDown;簡單組合框值為1,Vb.net中的常數值為Simple;下拉式列表框值為2,vb.net中的常數值為DropDownList。
3.下拉式組合框
在缺省設置(Style=0)下,組合框為下拉式。用戶可象在文本框中一樣直接輸入文本,也可單擊組合框右側的附帶箭頭打開選項列表。選定某個選項后,將此選項插入到組合框頂端的文本部分中。當控件獲得焦點時,也可按Alt+↓鍵打開列表
4.簡單組合框
將組合框的Style屬性設置為1,將指定一個簡單的組合框,任何時候都在其內顯示列表。為顯示列表中所有項,必須將列表框繪制得足夠大。當選項數超過可顯示的限度時將自動插入一個垂直滾動條。用戶可直接輸入文本,也可從列表中選擇。象下拉式組合框一樣,簡單組合框也允許用戶輸入那些不在列表中的選項。
5.下拉式組合框
下拉式組合框(Style=2)與正規(guī)列表框相似--它顯示項目的列表,用戶必須從中選擇,但下拉式列表框與列表框不同之處在于,除非單擊框右側的箭頭,否則不顯示列表。
這種列表框與下拉式組合框的主要差別在于,用戶不能在列表框中輸入選項,而只能在列表中選擇。當窗體上的空間較少時,可使用這種類型的列表框。
6.添加項目
為在組合框中添加項目,應使用Insert方法,其語法如下:
ComboboxName.Items.Insert(index As Integer,item As Object)
"comboboxName"為列表框或組合框名稱,item為在列表中添加的字符串表達式,用引號括起來。Index用來指定新項目在列表中的插入位置。Index為0表示第一個位置。當在第一個位置時,也可以用語法:
combobox.Items.Add(item As Object)
通常在設計時或在New過程中添加列表項目,但也可在任何時候使用Insert方法。這樣就能動態(tài)在列表中添加項目。以下代碼將“Chardonnay”,“Fum Blanc”,“Gewztraminer”和“Zinfandel”放置到名為combobox1,Style屬性為0(DropDown)的組合框中:
Public Sub New()
...
...
Combobox1.Items.Insert "Chardonnay"
Combobox1.Items.Insert "Fum Blanc"
Combobox1.Items.Insert "Gewztraminer"
Combobox1.Items.Insert "Zinfandel"
End Sub
7.設計時添加項目
在設計時,也可設置組合框控件“屬性”窗口的Items屬性,從而在列表中添加項目。選定Items屬性并單擊按鈕后就可以輸入列表項目,然后按回車鍵換到新的一行。
只能將項目添加到列表的末尾。所以,如果要將列表按字母順序排序,則應將Sorted屬性設置為True.
8.指定位置添加項目
為了在列表指定位置添加項目,應在新項目后指定索引值。例如,下行代碼將"Piont Noir"插入到第一個位置并把其他項目的位置向下調整:
Combobox1.Items.Insert(0,"Pinot Noir")
注意:指定列表中的第一個位置的是0而不是1
9.排序列表
將Sorted屬性設置為True并省略索引,則可在列表中指定按字母順序添加的項目。排序時不區(qū)分大小寫。將sorted屬性設置為true后,Items.Insert方法將導致不可預料的非排序結果。
10.刪除項目
可在組合框中用Items.Remove方法來刪除項目。Items.Remove有一個參數index,它指定要刪除的項目:combobox1.Items.Remove(index)及index參數和Items.Insert中的參數相同。例如,為了刪除列表中的第一個項目,應添加下面一行代碼:
combobox1.Items.Remove(0)
若要刪除所有列表項目,就使用Clear方法:
combobox1.Clear
11.用Text屬性獲取列表內容
獲取當前選項目值的最簡單的常用方法就是使用Text屬性。在運行時無論向控件的文本框部分輸入了什么文本,Text屬性都與這個文本相對應。它可以是選定的列表選項,或者是用戶在文本框中輸入的字符串。例如,如果用戶選定列表框中的“chardonnay”,則通過下列代碼顯示有關“chardonnay”的信息:
Private Sub Combobox1_click(Byval sender As Object,Byval e As System.EventArgs)
If Combobox1.Text="Chardonnay" Then
Textbox1.Text="Chardonnay is a midium-bodied white wine."
End If
End Sub
其中Text屬性包含Combobox1列表框中當前選定的項目。代碼查看是否選擇了“Chardonnay”,若是如此,則在文本框中顯示信息。
12.用Items屬性訪問列表選項
有了Items屬性就可訪問列表中所有項目,該屬性包含一個數組,而且列表中的每個項目都是數組的元素。每一項都表示為字符串的形式。為了引用列表中的項目,應使用如下語法:
ComboboxName.Items(index)
ComboboxName為組合框名稱,而index是項目的位置。頂端項目的索引為0,下一個項目的索引為1,依次類推。例如,在文本框中,以下語句顯示列表中的第三個項目(index=2):
Text1.Text=CStr(Combobox1.Items(2))
13.用SelectIndex屬性判斷位置
想要知道組合框列表中選定項目位置,可以由SelectIndex屬性得到。該屬性設置或返回控件中當前選定項目的索引值,而且只在運行時有效。對組合框的SelectIndex屬性進行設置時也會觸發(fā)控件的Click事件。若選定第一個(項端)項目,則屬性值為0;選定的下一個項目屬性值為1,依次類推。如果未選定項目,或者用戶在組合框中輸入選項(樣式0或1)而不在列表中選擇現有的項目,則SelectIndex為-1。
14.Items.Count屬性返回項目數
為了返回組合框中的項目數,應使用Items.Count屬性。例如,下列語句用Items.Count屬性判斷組合框中的項目數:
TextBox1.Text="You have"Combobox1."Items.Count""_entries listed"
Private Sub b_click(sender As Object, e As EventArgs)
MsgBox(sender.name)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim b() As Button = {Button1, Button2, Button3}
For Each i In b
AddHandler i.Click, AddressOf b_click
Next
End Sub
名稱欄目:VB.NET的組合控件 vb組合框控件列表項目
鏈接分享:http://vcdvsql.cn/article44/hpgiee.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站內鏈、定制網站、全網營銷推廣、網站策劃、App設計、定制開發(fā)
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯