我目前有一个带有几个框的CheckedListBox。我希望能够测试列表中的每个Checkbox以查看是否已选中,如果已选中,则将其文本值(CheckBox.Text)添加到字符串列表中。
这是我所拥有的:
for ( int i = 0; i < multiTaskChecks.Items.Count; i++ )
{
if ( multiTaskChecks.GetItemChecked(i) )
{
checkedMultiTasks.Add(multiTaskChecks.GetItemText(i));
}
}
使用此命令,
GetItemText
返回0、1、2、3等,而不是我所追求的文本值。我也尝试过CheckedListBox.Text.IndexOf(i)
,CheckedListBox.Text.ToList()
,每一个都没有运气。我只是无法从CheckedListBox获得这些CheckBox之一的标签文本。任何帮助,将不胜感激。
最佳答案
首先,您应该只能像这样循环遍历已检查的项目
foreach (var item in multiTaskChecks.CheckedItems)
{
}
然后根据
item
的类型,从中获取所需的任何属性。听起来像只是一个文本,或者您只想要字符串,所以foreach (var item in multiTaskChecks.CheckedItems)
{
checkedMultiTasks.Add(item.ToString());
}
或者我更喜欢
checkedMultiTasks.AddRange(multiTaskChecks.CheckedItems.
OfType<object>().Select(i => i.ToString()));
关于c# - 从CheckedListBox获取CheckBox的标签文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7117063/