gpt4 book ai didi

c# - 列表框总是返回所选项目的错误值

转载 作者:行者123 更新时间:2023-11-30 18:34:10 24 4
gpt4 key购买 nike

我在 C# 中有一个动态填充的列表框。我对列表框的 selectedindex_changed 有疑问。每次它给出列表框中最后一项的值而不是我选择的那个。我在另一页上的组合框也遇到了同样的问题。

我不知道为什么会这样。有谁知道我做错了什么?

首先,我创建了一个新对象 Item 以将带有 ID 的文本作为值放入列表框中。

    public class Item
{
public string Text { get; set; }
public int Value { get; set; }

public override string ToString()
{
return Text;
}
}

在这里,我用文本和 ID 作为值填充列表框。这工作正常,列表框得到了应有的填充。

private void FormDeelnemers_Load(object sender, EventArgs e)
{
BLPersoon blPersoon = new BLPersoon();
DBOpdracht.PersoonDataTable personen = blPersoon.GetAllPersonen();

//Item item = new Item(); -> edit: delete this

foreach (DBOpdracht.PersoonRow persoon in personen)
{
Item item = new Item(); -> edit: add this here
item.Text = persoon.naam;
item.Value = persoon.ID;
listBoxPersonen.Items.Add(item);
}
}

问题来了。它给出了列表框中最后一项的值,而不是我选择的那个。如何获得选中的?

    private void listBoxPersonen_SelectedIndexChanged(object sender, EventArgs e)
{
int nummer = (listBoxPersonen.SelectedItem as Item).Value;
MessageBox.Show(nummer.ToString());
//MessageBox.Show(listBoxPersonen.SelectedItem.ToString()); -> same problem
}

最佳答案

感谢@bmused 在评论中解决了这个问题,但是谁能解释一下究竟发生了什么?

我在使用 foreach 添加项目时遇到了 combobox 的相同问题。问题是插入期间项目的实例化与从 combobox 中进行选择有什么关系?

附言抱歉,管理员无法将此作为评论发布。

关于c# - 列表框总是返回所选项目的错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16428536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com