我试图从CheckedListBoxControl中找到特定值的索引。 CheckedListBoxControl将DataSource,DisplayMember,ValueMember设置为DataTable,并且可以接受两列。现在,我必须通过使用ValueMember中的一些值,然后使用该索引调用SetItemChecked()方法,从CheckedListBoxControl中查找其索引,将CheckedState属性设置为true。
我无法找到任何返回索引的属性或方法。请帮忙。
答案 0 :(得分:4)
如果列表框控件绑定到数据源,则可以使用GetItem()方法和ItemCount属性迭代所有列表框项:
for(int i = 0; i < checkedListBoxControl.ItemCount; i++) {
object dataRow = checkedListBoxControl.GetItem(i);
}
要查找指定项目的索引,您可以使用FindItem()方法
通过DisplayText搜索:
string s = "searchString";
int index = checkedListBoxControl.FindItem(startIndex, true, delegate(ListBoxFindItemArgs e) {
e.IsFound = s.Equals(e.DisplayText);
});
按ValueMember搜索:
object value = 100;
int index = checkedListBoxControl.FindItem(startIndex, true, delegate(ListBoxFindItemArgs e) {
e.IsFound = object.Equals(value, e.ItemValue);
});
请同时查看“How to get checked rows of a data-bound CheckedListBoxControl”文章。