如何从checkedlistbox控件的selectedvalue获取索引?

时间:2016-10-07 18:59:37

标签: c# winforms checkedlistbox

在Windows窗体中的其他控件中,我有一个包含许多项的CheckedListBox。填充CheckedListBox的代码是:

Dictionary<string, string> ciDict = new Dictionary<string, string>();
ciDict.Add("1", "Audi");
ciDict.Add("2", "Suzuki");
ciDict.Add("3", "Saab");
ciDict.Add("4", "Tata");

clb.DataSource = new BindingSource(ciDict, null);
clb.DisplayMember = "Value";
clb.ValueMember = "Key";

当我在表中保存数据时,我正在保存'ValueMember'。现在在所述表单的编辑模式中,我想要使用之前保存的值成员检查CheckedListBox项目。我的问题是如何查找索引来自其valuemember的CheckedListBox项目???希望您理解我的问题。

while (rdrCCA.Read())
{
   int index= clbCSA.Items.IndexOf(rdrCCA["CCA_ITEM_ID"]);
   clbCSA.SetItemChecked(index, true);
}

其中

clbCSA= name of the checkedlistbox control
CCA_ITEM_ID = name of the table field where valumember are being stored.

此代码不起作用。请使用一些代码提供建议。

1 个答案:

答案 0 :(得分:1)

由于您的数据在字典中,按值查找索引的最简单方法是以这种方式在字典中查找值的索引:

var index = yourDictionary.Keys.ToList().IndexOf("SomeValue");
if(index > -1)
    checkedListBox1.SetItemChecked(index, true);