gpt4 book ai didi

带有文本和值的 C# ComboBox

转载 作者:IT王子 更新时间:2023-10-29 04:49:52 27 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
C# Winforms Combobox with Label and Value

一种方法是如何在 ComboBox 中存储显示值和实际值?

即 ComboBox 显示:

  • 毁灭世界
  • 火弹弓
  • 召唤克苏鲁

但检索到的值是:

  • dw
  • ss
  • sc

我希望能够以类似于此的方式检索所选项目的值:

string selectedValue = combobox1.SelectedValue

响应答案更新代码:

Dictionary<string, string> filterItems = new Dictionary<string, string>
{
{"Destroy World", "dw"},
{"Fire Slingshot", "fs"},
{"Summon Cthulu", "sc"},
};
this.options_filterby.DataSource = new BindingSource(filterItems, null);
this.options_filterby.DisplayMember = "Key";
this.options_filterby.ValueMember = "Value";

现在由于某些原因,虽然 DisplayMembers 绝对没问题,但 ValueMembers 返回字典对象。更奇怪的是,一段时间后,最终 ValueMembers 将按预期返回字符串。

private void options_filterby_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show(options_filterby.SelectedValue.ToString());
}

这会在我更改 ComboBox 的选定项的前几次返回字典,但最终会根据需要返回字符串。

更新:已修复(无法添加为解决方案,因为问题已关闭)

针对上述问题,修复方法是在 DataSource 之前设置 DisplayMember 和 ValueMember 属性。我认为这是一个错误。代码应为:

this.options_filterby.DisplayMember = "Key";
this.options_filterby.ValueMember = "Value";
this.options_filterby.DataSource = new BindingSource(filterItems, null);

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