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 likelistbox1。选择editem.ToString(名称、ID)
?@Idle\u请注意,我对这一点不太熟悉,所以我不知道你的意思:$如果不将列表框中的“thing”强制转换为正确的类型,这将不起作用。。。