我在SelectedItem
中尝试获取ListBox
时遇到了问题。 Listbox
是在我的示例中进一步绑定到列表的数据源。
listBox1.DisplayMember = "StringPosition";
listBox1.ValueMember = "StringPosition";
listBox1.DataSource = MatchList;
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string curItem = listBox1.SelectedItem.ToString();
MessageBox.Show(curItem);
}
当我运行程序并在列表中选择一个项目而不是显示MessaseBox
的{{1}}时,它会在我的自定义类中显示被覆盖的SelectedItem
方法。现在,自定义ToString
方法只是MSDN示例中的剩余方法,我实际上并不需要它。但是,即使我将其注释掉而不是被覆盖的ToString
,它也只会显示ToString
这是我的项目命名空间和自定义类。那么我如何解决这个问题,以便我可以在Parser.SectorBodies
ListBox
答案 0 :(得分:1)
你应该这样做。我没有时间来测试它,但SelectedValue应该只是字符串所以不应该有任何需要做ToString()。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string curItem = listBox1.SelectedValue.ToString();
MessageBox.Show(curItem);
}
要显示我尝试过的所有内容,正如其中一条评论所指出的那样。您可以抓取整个对象,将其投射到您的班级。然后,您可以访问对象中的所有内容。希望这有效!
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
SectorBodies curItem = listBox1.SelectedItem as SectorBodies;
MessageBox.Show(curItem.StringPosition);
}