复选框 - 获取所有信息

时间:2018-05-26 18:29:56

标签: c#

我正在尝试使用for循环来获取checkedlistbox中的所有数据

类似这样的事情

foreach(Item in Checklistbox){
if(Item.Checked){
   var text = Item.text + "-True";
}
else{
    var text = Item.text + "-False";
}
}

2 个答案:

答案 0 :(得分:0)

如果CheckedListBox中的每个项目都是字符串对象,请使用:

for (int i = 0; i < checkedListBox.Items.Count; i++) {
    string text;
    if (checkedListBox.GetItemChecked(i)) {
        text = checkedListBox.Items[i] + "-True";
    }
    else {
        text = checkedListBox.Items[i] + "-False";
    }
    // do something with text here
}

否则,如果每个项目都不是字符串,但您设置了DisplayMember属性,请使用:

for (int i = 0; i < checkedListBox.Items.Count; i++) {
    string text;
    if (checkedListBox.GetItemChecked(i)) {
        text = checkedListBox.GetItemText(checkedListBox.Items[i]) + "-True";
    }
    else {
        text = checkedListBox.GetItemText(checkedListBox.Items[i]) + "-False";
    }
    // do something with text here
}

事实上,为了简化它们,你可以这样做:

for (int i = 0; i < checkedListBox.Items.Count; i++)
{
    string text = checkedListBox.GetItemText(checkedListBox.Items[i]) + (checkedListBox.GetItemChecked(i) ? "-True" : "-False");
    // do something with text here
}

答案 1 :(得分:0)

请注意,您可以将任何类型的对象添加到CheckedListBox,因此我们不知道&#39; var item&#39;是在编译时。因此,我们无法做到这一点 &#39; var text = item.text&#39;但需要使用CheckedListBox.GetItemText(对象项)函数。

foreach (var item in checkedListBox.Items) {
    if (checkedListBox1.CheckedItems.Contains(item)) {
        var text = checkedListBox.GetItemText(item) + "-True";
    } else
    {
        var text = checkedListBox.GetItemText(item) + "-False";
    }
}