在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.
此代码不起作用。请使用一些代码提供建议。
答案 0 :(得分:1)
由于您的数据在字典中,按值查找索引的最简单方法是以这种方式在字典中查找值的索引:
var index = yourDictionary.Keys.ToList().IndexOf("SomeValue");
if(index > -1)
checkedListBox1.SetItemChecked(index, true);