listBox.Items这个集合中的元素是object类型的,所以你可以向listBox添加任何对象,只不过显示出来的Text是这个object的ToString()的结果,你可以如下定义一个自己想要的任何类,把这个类的实例加到listBox.Items这样,你就可以得到你想要的任何附加的值:
private class b
{
private string m_Text;
private int m_ID;
public b(int id, string Text)
{
this.m_ID=id;
this.m_Text=Text;
}
public string Text
{
get
{
return this.m_Text;
}
set
{
this.m_Text=value;
}
}
public int ID
{
get
{
return this.m_ID;
}
set
{
this.m_ID=value;
}
}
}private void AddItems()
{
for(int i=0;i<10;i++)
{
this.listBox1.Items.Add(new b(i,"Item "+ i.ToString()));
}
}
private void listBox1_DoubleClick(object sender, System.EventArgs e)
{
if (m_Assembly==null)
{
MessageBox.Show(((sender as ListBox).Items[(sender as ListBox).SelectedIndex] as b).ID.ToString());
return;
}
}
这样的话,你可以向类b中添加任何你想要的属性,而不是一个单一的string了.你试试看.
不知道是不是你的意思.