Web控件DropDownList和WinForm控件ComboBox機制不一樣。
ComboBox沒有對應的ListItem需要自己寫一個:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace WinListItem{ /// <summary> /// 選擇項類,用于ComboBox或者ListBox添加項 /// </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添加項:
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) { //添加項,Web控件DropDownList有對應的ListItem ListItem listItem0 = new ListItem("0", "選項零"); ListItem listItem1 = new ListItem("1", "選項一"); ListItem listItem2 = new ListItem("2", "選項二"); comboBox1.Items.Add(listItem0); comboBox1.Items.Add(listItem1); comboBox1.Items.Add(listItem2); //設置默認選擇項,DropDownList會默認選擇第一項。 comboBox1.SelectedIndex = 0;//設置第一項為默認選擇項。 comboBox1.SelectedItem = listItem1;//設置指定的項為默認選擇項 } }}
運行如圖:
參考:c#(winform)中ComboBox和ListBox添加項完全解決
剛開始用.net 的winform開發,發現好些控件都很難用,可能是不熟悉的原因吧,這不,一個給ComboBox添加項的問題就搞的我很頭疼,我要同時給一個項添加名字和值,怎么都沒法加,查了查資料,又自己匯總測試了下,終于全部搞定了,現把完整的方案寫下。
用comboBox的數據綁定的方法很簡單,建一個數據源,綁定到ComboBox上,然后指定DisplayMember和 ValueMember就可以了。但是感覺好不靈活哦,如果我要在ComboBox上再添加一項,那怎么辦?Web里面有ListItem, winform里面怎么沒有了?感覺真是不爽,網上找了個方法,自己添加一個ListItem類,然后add到items里面,感覺還不錯,有點象web 里面的用法了,可是問題又來了,添加的第一項怎么變成類名了?不是我給它賦的名字,其他項又都沒有問題。于是又查到說,“因為combobox的 Item.ADD(一個任意類型的變量),而顯示的時候調用的是這個變量的ToString()方法,如果這個類沒有重載ToString(),那么顯示的結果就是命名空間 + 類名”,于是加上重載的ToString()方法,好了,至此,我終于可以很方便的來給ComboBox和ListBox添加項了。
|
新聞熱點
疑難解答