从CheckedListBox获取CheckBox的标签文本

Omn*_*nce 1 .net c# list checkedlistbox

我目前有一个带有几个框的CheckedListBox.我希望能够测试列表中的每个Checkbox以查看它是否已被选中,如果是,则将其文本值(CheckBox.Text)添加到字符串列表中.

这是我有的:

for ( int i = 0; i < multiTaskChecks.Items.Count; i++ )
{
    if ( multiTaskChecks.GetItemChecked(i) )
    {
        checkedMultiTasks.Add(multiTaskChecks.GetItemText(i));
    }
}
Run Code Online (Sandbox Code Playgroud)

使用它,GetItemText返回0,1,2,3等,而不是我所追求的文本值.我也尝试过CheckedListBox.Text.IndexOf(i),CheckedListBox.Text.ToList()每个人都没有运气.

我只是无法从CheckedListBox获取其中一个CheckBox的标签文本.任何有关这方面的帮助将非常感激.

Kir*_*rst 5

首先,您应该能够像这样循环检查已检查的项目

foreach (var item in multiTaskChecks.CheckedItems)
{
}
Run Code Online (Sandbox Code Playgroud)

然后根据类型item,从中获取您想要的任何属性.听起来它只是一个文本,或者你只是想要字符串,所以

foreach (var item in multiTaskChecks.CheckedItems)
{
    checkedMultiTasks.Add(item.ToString());
}
Run Code Online (Sandbox Code Playgroud)

或者我更喜欢

checkedMultiTasks.AddRange(multiTaskChecks.CheckedItems.
    OfType<object>().Select(??i => i.ToString()));
Run Code Online (Sandbox Code Playgroud)