天天看點

C#窗體控件更新(五)

清單類控件 

<b>十、ListBox 控件 </b>

ListBox 控件又稱清單框,它在工具箱中的圖示為,它顯示一個項目清單供使用者選擇。在清單框中,使用者

一次可以選擇一項,也可以選擇多項。 

1、常用屬性: 

(1) Items屬性:用于存放清單框中的清單項,

是一個集合。通過該屬性,可以添加清單項、

移除清單項和獲得清單項的數目。 

(2)MultiColumn 屬性:用來擷取或設定一

個值,該值訓示ListBox是否支援多列。值 

為 true 時表示支援多列,值為 false 時不支援

多列。當使用多列模式時,可以使控件得以顯

示更多可見項,如圖9-19 所示。 

(3)ColumnWidth 屬性:用來擷取或設定多

列 ListBox控件中列的寬度。 

(4)SelectionMode屬性:用來擷取或設定在ListBox控件中選擇清單項的方法。當 SelectionMode屬性設

置為 SelectionMode.MultiExtended 時,按下 Shift 鍵的同時單擊滑鼠或者同時按 Shift 鍵和箭頭鍵之一(上

箭頭鍵、下箭頭鍵、左箭頭鍵和右箭頭鍵),會将標明内容從前一標明項擴充到目前項。按 Ctrl 鍵的同時

單擊滑鼠将選擇或撤銷選擇清單中的某項;當該屬性設定為 SelectionMode.MultiSimple 時,滑鼠單擊或按-空格鍵将選擇或撤銷選擇清單中的某項;該屬性的預設值為SelectionMode.One,則隻能選擇一項。 

(5)SelectedIndex屬性:用來擷取或設定ListBox控件中目前標明項的從零開始的索引。如果未標明任何

項,則傳回值為1。對于隻能選擇一項的ListBox控件,可使用此屬性确定ListBox中標明的項的索引。如

果 ListBox 控件的 SelectionMode 屬性設定為 SelectionMode.MultiSimple 或 SelectionMode.MultiExtended,

并在該清單中標明多個項,此時應用SelectedIndices來擷取標明項的索引。 

(6)SelectedIndices。該屬性用來擷取一個集合,該集合包含 ListBox 控件中所有標明項的從零開始的索

引。 

(7)SelectedItem屬性:擷取或設定ListBox中的目前標明項。 

(8)SelectedItems屬性:擷取 ListBox控件中標明項的集合,通常在ListBox控件的SelectionMode屬性值

設定為SelectionMode.MultiSimple或SelectionMode.MultiExtended(它訓示多重選擇ListBox)時使用。 

(9)Sorted屬性:擷取或設定一個值,該值訓示ListBox控件中的清單項是否按字母順序排序。如果清單

項按字母排序,該屬性值為true;如果清單項不按字母排序,該屬性值為false。預設值為false。在向已排

序的 ListBox控件中添加項時,這些項會移動到排序清單中适當的位置。 

(10)Text 屬性:該屬性用來擷取或搜尋 ListBox 控件中目前標明項的文本。當把此屬性值設定為字元串

值時,ListBox 控件将在清單内搜尋與指定文本比對的項并選擇該項。若在清單中選擇了一項或多項,該

屬性将傳回第一個標明項的文本。 

(11)ItemsCount屬性:該屬性用來傳回清單項的數目。 

2、常用方法: 

(1)FindString方法:用來查找清單項中以指定字元串開始的第一個項,有兩種調用格式。 

[格式1]: 

ListBox對象.FindString(s); 

[功能]:在“ListBox 對象”指定的清單框中查找字元串 s,如果找到則傳回該項從零開始的索引;如果找

不到比對項,則傳回ListBox.NoMatches。 

[格式2]: 

ListBox對象.FindString(s,n); 

[功能]:在 ListBox 對象指定的清單框中查找字元串 s,查找的起始項為n+1,即 n 為開始查找的前一項的

索引。如果找到則傳回該項從零開始的索引;如果找不到比對項,則傳回ListBox.NoMatches。 

注意:FindString 方式隻是詞語部分比對,即要查找的字元串在清單項的開頭,便認為是比對的,如果要

精确比對,即隻有在清單項與查找字元串完全一緻時才認為比對,可使用FindStringExact方法,調用格式

與功能與FindString基本一緻。 

(2)SetSelected方法:用來選中某一項或取消對某一項的選擇,調用格式及功能如下。 

[格式]: 

ListBox對象.SetSelected(n,l); 

[功能]:如果參數 l 的值是 true,則在 ListBox 對象指定的清單框中選中索引為 n 的清單項,如果參數l 的

值是 false,則索引為n 的清單項未被選中。 

(3)Items.Add方法:用來向清單框中增添一個清單項,調用格式及功能如下。 

ListBox對象.Items.Add(s); 

[功能]:把參數s添加到“listBox對象”指定的清單框的清單項中。 

(4)Items.Insert方法:用來在清單框中指定位置插入一個清單項,調用格式及功能如下。 

ListBox對象.Items.Insert(n,s); 

[功能]:參數n代表要插入的項的位置索引,參數 s代表要插入的項,其功能是把s插入到“listBox對象”

指定的清單框的索引為n的位置處。 

(5)Items.Remove方法:用來從清單框中删除一個清單項,調用格式及功能如下。 

ListBox對象.Items.Remove(k); 

[功能]:從 ListBox對象指定的清單框中删除清單項s。 

(6)Items.Clear方法:用來清除清單框中的所有項。其調用格式如下: 

ListBox對象.Items.Clear(); 

該方法無參數。 

(7)BeginUpdate方法和EndUpdate方法:這兩個方法均無參數,調用格式分别如下: 

ListBox對象.BeginUpdate(); 

ListBox對象.EndUpdate(); 

這兩個方法的作用是保證使用 Items.Add 方法向清單框中添加清單項時,不重繪清單框。即在向清單框添

加項之前,調用BeginUpdate方法,以防止每次向清單框中添加項時都重新 

繪制 ListBox 控件。完成向清單框中添加項的任務後,再調用 EndUpdate 方法使 ListBox 控件重新繪制。

當向清單框中添加大量的清單項時,使用這種方法添加項可以防止在繪制 ListBox 時的閃爍現象。一個例

子程式如下: 

publicvoidAddToMyListBox() 

{listBox1.BeginUpdate(); 

for(intx=1;x&lt;5000;x++) 

listBox1.Items.Add("Item"+x.ToString()); 

listBox1.EndUpdate(); 

ListBox控件常用事件有Click和 SelectedIndexChanged,SelectedIndexChanged事件在清單框中改變選中項

時發生。 

<b>十一 、ComboBox 控件 </b>

ComboBox 控件又稱組合框,在工具箱中的圖示為。預設情況下,組合框分兩個部分顯示:頂部是一個允

許輸入文本的文本框,下面的清單框則顯示清單項。可以認為ComboBox就是文本框與清單框的組合,與

文本框和清單框的功能基本一緻。與清單框相比,組合框不能多選,它無 SelectionMode 屬性。但組合框

有一個名為DropDownStyle的屬性,該屬性用來設定或擷取組合框的樣式,其取值及含義如表9-10所示。 

組合框的各種樣式如圖9-22 所示, 左邊的組合框能夠通過文本框輸入文本,中間的組合框則不能輸入文本,

隻能選擇清單項。 

<b>12、CheckedListBox 控件 </b>

CheckedListBox控件又稱複選清單框,它擴充了ListBox控件,它幾乎

能完成清單框可以完成的所有任務,并且還可以在清單項旁邊顯示複

選标記。兩種控件間的其他差異在于,複選清單框隻支援

DrawMode.Normal,并且複選清單框隻能有一項標明或沒有任何標明。此處需要注意一點:標明的項是指

窗體上突出顯示的項,已選中的項是指左邊的複選框被選中的項。複選清單框的樣式如圖9-23所示。 

除具有清單框的全部屬性外,它還具有以下屬性。 

(1)CheckOnClick屬性:擷取或設定一個值,該值訓示當某項被標明時

是否應切換左側的複選框。如果立即切換選中标記,則該屬性值為true;

否則為false。預設值為false。 

(2)CheckedItems 屬性:該屬性是複選清單框中選中項的集合,隻代表

處于CheckState. Checked或CheckState.Indeterminate狀态的那些項。 該集

合中的索引按升序排列。 

(3)CheckedIndices 屬性:該屬性代表選中項(處于選中狀态或中間狀

态的那些項)索 

引的集合。 

本文轉自 吳雨聲 51CTO部落格,原文連結:http://blog.51cto.com/liangxiao/719395,如需轉載請自行聯系原作者