我正在研究创建一个基于字符串的变量数组,以便了解哪些文本框已被检查,例如:
string[] checkedItems = new string[10];
foreach (object item in checkedList.CheckedItems)
{
checkedItems.SetValue(item, 0);
}
我基本上需要这个,了解哪些复选框已被勾选,然后显示结果。
稍后,结果将用于比较Excel电子表格。因此,理解每个项目都是一个" Column"
我也尝试过写作:
checkedItems.SetValue(item, 0);
checkedItems.SetValue(item, 1);
checkedItems.SetValue(item, 2);
checkedItems.SetValue(item, 3);
这只是显示例如:
Array slot 1 = DocID
Array slot 2 = DocID
Array slot 3 = DocID.
我相信这是因为它只是为每个复选框循环。有10个。
答案 0 :(得分:2)
根据MSDN的信息,示例显示:
foreach(object itemChecked in checkedListBox1.CheckedItems) {
// Use the IndexOf method to get the index of an item.
MessageBox.Show("Item with title: \"" + itemChecked.ToString() +
"\", is checked. Checked state is: " +
checkedListBox1.GetItemCheckState(checkedListBox1.Items.IndexOf(itemChecked)).ToString() + ".");
}
为了使其适应您的问题,我们可能会这样做:
string[] GetCheckedItems() {
// use a list because the number is not interrogated
var checkedItems = new List<string>();
foreach (object item in checkedList.CheckedItems) {
checkedItems.Add(item.ToString());
}
return checkedItems.ToArray();
}
...或者您可以查询已检查项目的数量:
string[] GetCheckedItems() {
// interrogate checked items count
var checkedItems = new string[checkedList.CheckedItems.Count];
for (int i = 0; i < checkedItems.Length; i++) {
checkedItems[i] = checkedList.CheckedItems[i].ToString();
}
return checkedItems;
}
...或者如果您对Linq
感到满意:
string[] GetCheckedItems() {
return checkedList.CheckedItems
.Select(ci => ci.ToString())
.ToArray();
}