像API的LB_SETITEMDATA一样,因为我的listbox里的每一项都代表一个人物在人物数据数组的index,我需要通过这个index来找到人物数据,而listbox必须sort,所以我想像api一样为每一个item设置一个附加数据

解决方案 »

  1.   

    你可以定义一个list的类,然后list的类中附加你要附加数据作为属性,然后再在item中add(list)
      

  2.   

    listbox1.Items.Add(这里是对象);
    你可以定义一个类,如:
    public class myListItem
    {
        public string Name
        {get;set;}
        public int Value  //可以存放其他属性(int型)
        {get;set;}
        public object Tag
        {get;set;}       //存放其他属性(object型)
        public override string ToString()
        {return Name;}
        public myListItem(string name, int value, object tag)
        {Name=name; Value=value; Tag=tag;}
    }listBox1.Items.Add(new myListItem("张三",10,其他数据));
    listBox1.Items.Add(new myListItem("李四",10,其他数据));
      

  3.   

    正解,我以前也是这么用的,tag是的object,可以放一个自定义class实例进去,也可以放字符串。
      

  4.   

    ListBox可以直接绑定实体的,然后设置DisplayMember属性为要显示的实体属性即可,取值直接取Item然后转换回去。
      

  5.   

    可以放tag里,用的时候取出来
      

  6.   

    ListBox的Item没有Tag的,所以不能单独给每项添加,可以直接绑定实体,然后通过DisplayMember来控制显示。如#5