C#(WinForm) ComboBox和ListBox添加項(xiàng)及設(shè)置默認(rèn)選擇項(xiàng)
Web控件DropDownList和WinForm控件ComboBox機(jī)制不一樣。
ComboBox沒(méi)有對(duì)應(yīng)的ListItem需要自己寫一個(gè):
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WinListItem { /// <summary> /// 選擇項(xiàng)類,用于ComboBox或者ListBox添加項(xiàng) /// </summary> public class ListItem { private string id = string.Empty; private string name = string.Empty; public ListItem(string sid, string sname) { id = sid; name = sname; } public override string ToString() { return this.name; } public string ID { get { return this.id; } set { this.id = value; } } public string Name { get { return this.name; } set { this.name = value; } } } }
然后可以類似DropDownList添加項(xiàng):
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WinListItem { public partial class MainFrm : Form { public MainFrm() { InitializeComponent(); } private void btnOk_Click(object sender, EventArgs e) { ListItem listItem = comboBox1.SelectedItem as ListItem; MessageBox.Show(listItem.ID + "," + listItem.Name); } private void MainFrm_Load(object sender, EventArgs e) { //添加項(xiàng),Web控件DropDownList有對(duì)應(yīng)的ListItem ListItem listItem0 = new ListItem("0", "選項(xiàng)零"); ListItem listItem1 = new ListItem("1", "選項(xiàng)一"); ListItem listItem2 = new ListItem("2", "選項(xiàng)二"); comboBox1.Items.Add(listItem0); comboBox1.Items.Add(listItem1); comboBox1.Items.Add(listItem2); //設(shè)置默認(rèn)選擇項(xiàng),DropDownList會(huì)默認(rèn)選擇第一項(xiàng)。 comboBox1.SelectedIndex = 0;//設(shè)置第一項(xiàng)為默認(rèn)選擇項(xiàng)。 comboBox1.SelectedItem = listItem1;//設(shè)置指定的項(xiàng)為默認(rèn)選擇項(xiàng) } } }
運(yùn)行如圖:
參考:c#(winform)中ComboBox和ListBox添加項(xiàng)完全解決
剛開始用.net 的winform開發(fā),發(fā)現(xiàn)好些控件都很難用,可能是不熟悉的原因吧,這不,一個(gè)給ComboBox添加項(xiàng)的問(wèn)題就搞的我很頭疼,我要同時(shí)給一個(gè)項(xiàng)添加名字和值,怎么都沒(méi)法加,查了查資料,又自己匯總測(cè)試了下,終于全部搞定了,現(xiàn)把完整的方案寫下。
用comboBox的數(shù)據(jù)綁定的方法很簡(jiǎn)單,建一個(gè)數(shù)據(jù)源,綁定到ComboBox上,然后指定DisplayMember和 ValueMember就可以了。但是感覺(jué)好不靈活哦,如果我要在ComboBox上再添加一項(xiàng),那怎么辦?Web里面有ListItem, winform里面怎么沒(méi)有了?感覺(jué)真是不爽,網(wǎng)上找了個(gè)方法,自己添加一個(gè)ListItem類,然后add到items里面,感覺(jué)還不錯(cuò),有點(diǎn)象web 里面的用法了,可是問(wèn)題又來(lái)了,添加的第一項(xiàng)怎么變成類名了?不是我給它賦的名字,其他項(xiàng)又都沒(méi)有問(wèn)題。于是又查到說(shuō),“因?yàn)閏ombobox的 Item.ADD(一個(gè)任意類型的變量),而顯示的時(shí)候調(diào)用的是這個(gè)變量的ToString()方法,如果這個(gè)類沒(méi)有重載ToString(),那么顯示的結(jié)果就是命名空間 + 類名”,于是加上重載的ToString()方法,好了,至此,我終于可以很方便的來(lái)給ComboBox和ListBox添加項(xiàng)了。
ListItem item = new ListItem("我是值", "我是名字");
this.lbChoiceRoom.Items.Add(item);
this.lbChoiceRoom.DisplayMember = "Name";
this.lbChoiceRoom.ValueMember = "ID";
- C#中CheckedListBox控件的用法實(shí)例
- C# Winfom 中ListBox的簡(jiǎn)單用法詳解
- C# ListBox中的Item拖拽代碼分享
- C#使用checkedListBox1控件鏈接數(shù)據(jù)庫(kù)的方法示例
- C# CheckedListBox控件的用法總結(jié)
- C#實(shí)現(xiàn)讓ListBox適應(yīng)最大Item寬度的方法
- C#讀取文本文件到listbox組件的方法
- C#保存listbox中數(shù)據(jù)到文本文件的方法
- C#入門教程之ListBox控件使用方法
- c#使用listbox的詳細(xì)方法和常見(jiàn)問(wèn)題解決
相關(guān)文章
C#中子類調(diào)用父類的實(shí)現(xiàn)方法
這篇文章主要介紹了C#中子類調(diào)用父類的實(shí)現(xiàn)方法,通過(guò)實(shí)例逐步分析了類中初始化構(gòu)造函數(shù)的執(zhí)行順序問(wèn)題,有助于加深對(duì)C#面向?qū)ο蟪绦蛟O(shè)計(jì)的理解,需要的朋友可以參考下2014-09-09C#刪除只讀文件或文件夾(解決File.Delete無(wú)法刪除文件)
這篇文章主要介紹了C#刪除只讀文件或文件夾(解決File.Delete無(wú)法刪除文件),需要的朋友可以參考下2015-09-09C#中方法的直接調(diào)用、反射調(diào)用與Lambda表達(dá)式調(diào)用對(duì)比
這篇文章主要介紹了C#中方法的直接調(diào)用、反射調(diào)用與Lambda表達(dá)式調(diào)用對(duì)比,本文著重講解了方法的三種調(diào)用方法以及它們的性能對(duì)比,需要的朋友可以參考下2015-06-06DataGridView實(shí)現(xiàn)點(diǎn)擊列頭升序和降序排序
這篇文章介紹了DataGridView實(shí)現(xiàn)點(diǎn)擊列頭升序和降序排序的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02C# Windows API應(yīng)用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法
這篇文章主要介紹了C# Windows API應(yīng)用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法,結(jié)合實(shí)例形式分析了GetDesktopWindow函數(shù)用于獲取窗口句柄的具體使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-08-08C#實(shí)現(xiàn)Excel動(dòng)態(tài)生成PivotTable
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)Excel動(dòng)態(tài)生成PivotTable的相關(guān)方法,感興趣的小伙伴們可以參考一下2016-04-04winform開發(fā)使用通用多線程基類分享(以隊(duì)列形式)
多線程這個(gè)概念大家都很熟悉,對(duì)于winform的開發(fā)人員來(lái)說(shuō),用的還是多的.但估計(jì)都是用Timer,或者backgroundWorker,為大家寫了一個(gè)多線程的基類,只有你用到多線程拿過(guò)來(lái)就可以用了2013-12-12C#獲得程序的根目錄以及判斷文件是否存在的實(shí)例講解
今天小編大家分享一篇C#獲得程序的根目錄以及判斷文件是否存在的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06