1)check和select的两个是不同的需要注意;
2)默认情况下,点击一次是select,再次点击才是check;可以通过修改配置项修改 clbFreqList.CheckOnClick = true;//默认单击就是选中
可以添加,删除,全选;
a)添加比较简单;clbFreqList.Items.Add(freq.ToString("F3"));//freq 要添加的数据
b)设置为选中,这里是全选;如果有自己的条件可以根据自己条件进行选择
for (int i = 0; i < clbFreqList.Items.Count; i++)
{
clbFreqList.SetItemCheckState(i,CheckState.Checked);
clbFreqList.SetItemChecked(i, true);
Console.WriteLine(clbFreqList.Items[i].ToString());
}
c)删除,删除操作是比较麻烦的,你需要将现有的遍历一遍获取器idx,然后反向逐个删除,正向删除的时候会出现异常
// 创建一个列表来存储要删除的项的索引
List<int> indicesToDelete = new List<int>();
// 遍历CheckedListBox中的所有项,找出被选中的项
for (int i = 0; i < clbFreqList.Items.Count; i++)
{
// 如果当前项被选中,则添加到要删除的索引列表中
if (clbFreqList.GetItemChecked(i))
{
indicesToDelete.Add(i);
}
}
// 从后往前遍历索引列表来删除项,以避免索引变化导致的问题
for (int i = indicesToDelete.Count - 1; i >= 0; i--)
{
int index = indicesToDelete[i];
// 移除选中的项
clbFreqList.Items.RemoveAt(index);
}
另外单纯遍历选中的,或者全部选中的
for (int i = 0; i < clbFreqList.Items.Count; i++)
{
Console.WriteLine(clbFreqList.Items[i].ToString());
}
Console.WriteLine("*********************");
foreach (var item in clbFreqList.CheckedItems)
{
item.ToString();
Console.WriteLine(item.ToString());
}