c#(winform)中ComboBox和ListBox添加项完全解决
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添加項了。
首先添加類ListItem:
?/// <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;
???}
??}
?}
然后在程序中使用:
ListItem item = new ListItem("我是值", "我是名字");
this.lbChoiceRoom.Items.Add(item);
this.lbChoiceRoom.DisplayMember = "Name";
this.lbChoiceRoom.ValueMember = "ID";
轉載于:https://www.cnblogs.com/gostthink/archive/2008/03/17/1109754.html
總結
以上是生活随笔為你收集整理的c#(winform)中ComboBox和ListBox添加项完全解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用axis开发webservice实践
- 下一篇: Visual Studio 2005 中