【问题标题】:WinForms ComboBoxWinForms 组合框
【发布时间】:2015-02-25 13:47:08
【问题描述】:

我正在尝试将其中一个组合框项目标记为选中。

所以我正在像这样构建我的组合框:

var drop = new Dictionary<int, string>();
while (RegReader.Read())
{
    drop.Add(Convert.ToInt32(RegReader["intRulesID"]), RegReader["txtName"].ToString());
}

RegRuleDrop.DataSource = new BindingSource(drop, null);
RegRuleDrop.DisplayMember = "Value";
RegRuleDrop.ValueMember = "Key";

现在,RegRuleDrop 中的一项应根据此代码上方阅读器的值预先选择。 现在,问题是我需要根据实际的 ListItem VALUE 而不是 TEXT 来选择值。

举个例子

drop.Add(1, "Test");
drop.Add(2, "Test2");
drop.Add(3, "Test3");

我需要使用 1,2 或 3 而非 Test、Test2 或 Test3 来查找索引

有什么想法吗?

【问题讨论】:

  • 不完全是,当我需要通过 ValueMember 执行搜索时,所有示例都由 DisplayMember 搜索:(
  • 为什么首先需要搜索?如果要选中id=2,只需在循环中添加该项目后保存框中最后一项的索引即可。
  • 设置 SelectedValue 属性就足够了

标签: c# winforms combobox


【解决方案1】:

当您将 DataSource 设置为 BindingSource 时,在给定属于 ValueMember 属性的值的情况下选择项目所需的唯一操作是

drop.Add(1, "Test1");
drop.Add(2, "Test2");
drop.Add(99, "Test99");
drop.Add(3, "Test3");
.....

RegRuleDrop.SelectedValue = 99

【讨论】:

  • 太棒了,再简单不过了 :) 谢谢 将在 3 分钟内批准答案(限制... :( )
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
  • 2012-02-15
  • 2010-09-14
  • 1970-01-01
相关资源
最近更新 更多