winform listbox 没有listitem的问题

时间:2023-01-15 19:46:55

在winform编程中,listbox 只有一个 list.items.Add(object obj)的方法。

又是需要这样 list.items.Add(value,text)这样的东西。

其实这样的需求是可以实现的,只不过 list提供了一个更加灵活的方法而已。

我们可以自定义这样一个类

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(orgcode,orgname);
listbox.Items.Add(item);

listbox.DisplayMember = "Name";
listbox.ValueMember = "ID";

 

取值方法

ListItem item = box.SelectedItem as ListItem;
 string name = item.Name;
string id = item.ID;

或取ListBox中的集合

 ListBox.ObjectCollection obj = listBox2.Items;
            //object[] obj = listBox2.Items;
            ArrayList list_XM=new ArrayList();
            for (int i = 0; i < obj.Count; i++)
            {
                list_XM.Add(((PublicMethods.ListItem)(obj[i])).ID.ToString());
            }