天天看點

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/lgamoy/archive/2006/12/07/585396.html

下一篇: c++ rand函數