c# - WinForms 组合框

标签 c# winforms combobox

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

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

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 来查找索引

有什么想法吗?

最佳答案

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

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

RegRuleDrop.SelectedValue = 99

关于c# - WinForms 组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28720651/

相关文章:

C# 和 Ubuntu - 如何获取主屏幕的大小?

c# - Request.URL 始终返回 http,即使启用了 SSL

c# - AudioPlayerAgent 和 AudioStreamingAgent 有什么区别?

c# - 如何从 ASP.NET 中的表单访问字段数组?

javascript - 扩展点击时Extjs为空组合框值

c# - 无法将类型 'string' 隐式转换为 'System.Data.SqlClient.Sqlconnection'

c# - 在设计时像 ReadOnly 一样更改属性属性 (PropertyGrid)

c# - 数据源不反射(reflect) DataGridView 中的排序

c# - 在 c#.net 中从数据库加载数据时如何将组合框值设置为 null 或空

C#:在 SelectedIndexChange 事件处理程序中设置 ComboBox 文本值?