如何让combobox 显示格式为[ID]NAME
平时我们用: 
 this.combobox.ValueMember   =    "ID "; 
 this.combobox.DisplayMember   =    "NAME ";    
 绑定数据 
 但combobox只能显示NAME,不能ID,NAME同时显示 
 如果我想显示效为:[ID]NAME,该如何做啊?在线等....
------解决方案--------------------处理一下数据源,把ID和Name合成一个字段
------解决方案--------------------查询数据库的时候做处理   
 select ID,ID+Name as NAME from table
------解决方案--------------------定义一个CboItem类做为ComboBox的Item的元素: 
 public class CboItem 
 { 
     private object m_id; 
     private string m_Name; 
     public object ID 
     { 
        get 
        { 
            reutrn this.m_id; 
        } 
     } 
     public string Name 
     { 
        get 
        { 
            reutrn this.m_Name; 
        } 
     } 
     public CboItem(object id, string name) 
     { 
         this.m_id = id; 
         this.m_Name = name; 
     } 
     protedted override string ToString() 
     { 
         return string.Format( "[{0}]{1} ", this.m_id, this.m_Name); 
     } 
 }   
 然后每当向ComboBox添加一项的时候都生成这个类的实例添加到ComboBox就可以了.  
 //这样添加一项. 
 CboItem item= new CboItem(1,  "text "); 
 this.comboBox.Items.Add(item); 
 //这样取值. 
 CboItem item = this.comboBox1.Items[this.comboBox1.SelectedIndex] as CboItem; 
 item.ID; 
 item.Name;
------解决方案--------------------如果你的数据源是从数据库来的那么你最好增加一列把id和name和气来放在里面。 
 但是这种不是好办法,.net所有的这种列表性的控件都支持数据源邦定从数据对象列表里。 
 据个例子就是你可以 
 int[] intarry = new int[3]{1,2,3}; 
 listBox1.DataSource = intarry; 
 这样也是可以的。 
 然后再告诉你一点为什么 listbox会显示1,2,3呢?因为它执行了对象的tostring()方法。 
 好了,最后就看你怎么封装你的数据源了。
------解决方案--------------------1、在SQL语句中处理。ID连接Name 
 2、在内存表中处理。重组字段
------解决方案--------------------select str(Line.ID)+ '  ' +Line.Name from Line