C# 将对象加载到包含2个变量的列表框中,列表框仅显示名称

C# 将对象加载到包含2个变量的列表框中,列表框仅显示名称,c#,visual-studio,listbox,C#,Visual Studio,Listbox,我有一个类,其中有两个变量int-ID和string-name。我列出了几个对象,并将它们加载到列表框中。列表框仅显示名称。有没有办法从列表框中检索ID class Show { private int _Id; private string _Naam; private string _Genre; public override string ToString() { return Naam; } } 我从数据库中列

我有一个类,其中有两个变量
int-ID
string-name
。我列出了几个对象,并将它们加载到列表框中。列表框仅显示名称。有没有办法从列表框中检索ID

    class Show
{
    private int _Id;
    private string _Naam;
    private string _Genre;

    public override string ToString()
    {
        return Naam;
    }
}
我从数据库中列出了一个对象列表

 private void bttn_zoek_Click(object sender, EventArgs e)
    {
       foreach (object a in List<show> List) 
          {
             listbox1.Items.Add(a);
          }
    }
private void bttn_zoek_Click(对象发送方,事件参数e)
{
foreach(列表中的对象a)
{
列表框1.项目。添加(a);
}
}

我希望这足够了

发布一些代码会很好。您是否尝试过
listBox.items[index].ID

这里我假设索引是您当前搜索的任何索引


如果您正在执行类似事件的操作,也可以尝试
listBox.SelectedItem[index].ID

假设使用WinForms,下面是一个覆盖ToString()以控制类在listBox中显示方式的超级简单示例,以及如何将列表框中的选定项强制转换回类类型,以便从中提取值。有其他方法可以完成此任务,但您应该首先了解以下简单示例:

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        SomeClassName sc1 = new SomeClassName();
        sc1.ID = 411;
        sc1.Name = "Information";
        listBox1.Items.Add(sc1);

        SomeClassName sc2 = new SomeClassName();
        sc2.ID = 911;
        sc2.Name = "Emergency";
        listBox1.Items.Add(sc2);
    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (listBox1.SelectedIndex != -1)
        {
            SomeClassName sc = (SomeClassName)listBox1.Items[listBox1.SelectedIndex];
            label1.Text = "ID: " + sc.ID.ToString();
            label2.Text = "Name: " + sc.Name;
        }
    }

}

public class SomeClassName
{

    public int ID;
    public string Name;

    public override string ToString()
    {
        return ID.ToString() + ": " + Name;
    }

}

重载对象的
ToString
method.WinForms、WebForms、WPF等?..@Johnny so like
listbox1。选择editem.ToString(名称、ID)
?@Idle\u请注意,我对这一点不太熟悉,所以我不知道你的意思:$如果不将
列表框中的“thing”强制转换为正确的类型,这将不起作用。。。