ListBox控件的使用:
1)控件屬性
Items
SelectedItems
SelectioModes
2)數(shù)據(jù)綁定
DataSoure
DisplayMember
ValueMenber
3)實例
下面開始一一說明上面的ListBox控件的使用。
首先來說控件的屬性,
(1)Items:使用此屬性獲取列表控件項的屬性。此屬性可用于確定列表控件中的選定項。添加items時既可以設(shè)計時靜態(tài)添加,也可以在代碼中動態(tài)添加。如果不想顯示設(shè)計時添加的items,可以在代碼中添加this.listBox1.Items.Clear();只顯示在代碼中添加的選項。
(2)SelectedItems:獲取包含ListBox中當(dāng)前選定項的集合。
(3)SelectioModes:獲取或設(shè)置在ListBox中選擇項所用的方法。一共有四個值可選;默認(rèn)為 SelectionMode.One,只能選中一個;屬性值為none時不能選擇;當(dāng)屬性MultiExtended 時,按下 Shift 鍵的同時單擊鼠標(biāo)或者同時Shift 鍵和箭頭鍵之一(向上鍵、向下鍵、向左鍵和向右鍵),會將選定內(nèi)容從前一選定項擴展到當(dāng)前項。按 Ctrl 鍵的同時單擊鼠標(biāo)將選擇或撤消選擇列表中的某項;當(dāng)該屬性設(shè)置為MultiSimple 時,鼠標(biāo)單擊或按空格鍵將選擇或撤消選擇列表中的某項。
接下來說一哈數(shù)據(jù)綁定,通常數(shù)據(jù)都是可變的,所以說就需要數(shù)據(jù)綁定。數(shù)據(jù)綁定有幾種,一種就是綁定從數(shù)據(jù)庫中獲取的DataTable或者是DataSet;另外一種就是自定義一個類,綁定自定義類中的數(shù)據(jù)。c#中的數(shù)據(jù)綁定與ASP.NET中的數(shù)據(jù)綁定還有一點區(qū)別,ASP.NET中綁定數(shù)據(jù)后還要調(diào)用一個DataBind方法,而在c#中就不需要。而DisplayMember獲取或設(shè)置要顯示的屬性。
最后我們來做一個實例如圖所示:
下面我們只是說一哈幾個重要的方法的實現(xiàn),具體代碼就不在這寫了。將左邊框中的選項放到右邊框中去。代碼:
復(fù)制代碼 代碼如下:
for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0;i -- )
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox2.Items.Add(menu);
this.listBox1.Items.Remove(i);
}
上面雖然實現(xiàn)了功能但是有一個問題,就是左邊的項到了右邊后變成了倒序。這是我們需要將添加和移出分開寫,代碼:
復(fù)制代碼 代碼如下:
for (int i = 0; i this.listBox1.SelectedItems.Count;i++ )
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox2.Items.Add(menu);
}
for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0; i--)
{
this.listBox1.Items.Remove(i);
}
到現(xiàn)在為止還一個問題就是當(dāng)選擇框中的前面幾個項的時候右移沒有問題,但選擇后面幾個項時移到右邊框中的是后面幾個項,而左邊框中移出的是前面幾個項,造成這個問題的原因是我們將
SelectedItems和Items混為一談了。這是很多初學(xué)者容易犯的錯誤。代碼:
復(fù)制代碼 代碼如下:
for (int i = 0; i this.listBox1.SelectedItems.Count;i++ )
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox2.Items.Add(menu);
}
for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0; i--)
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox1.Items.Remove(menu);
}
這樣的話就對了。
個人自學(xué)不知說的對不對,希望各位支持支持,歡迎指正。
您可能感興趣的文章:- 使用VS2010 C#開發(fā)ActiveX控件(上)
- C# TreeView控件使用代碼
- c#重寫TabControl控件實現(xiàn)關(guān)閉按鈕的方法
- C#數(shù)據(jù)綁定控件中的DataSource屬性淺談
- 解析C#自定義控件的制作與使用實例的詳解
- C# 開發(fā)圓角控件(窗體)的具體實現(xiàn)
- c# table 控件用法
- C#波形圖控件制作示例程序
- C#自定義控件添加右鍵菜單的方法
- C#動態(tài)代碼生成控件后其他事件不能獲取該控件值的解決方法