C# CheckedListBox:复选列表框控件
- CheckedListBox:复选列表框控件
(1)Q:直接使用控件,运行后,出现需要双击才能某一项的情况,如何处理?
A:在初始化的时候 load事件里 加上这条设置;
this.checkedListBox1.CheckOnClick = true; - 复习框列表控件,删除选中项
方案一:网上烂大街了,效率低下
//方案1 对列表中选中的项循环删除,如列表100项,选中3项,循环6次
int j = 0;
//由于列表框控件中允许多选所以需要循环删除所有已选项
int count = listBox1.SelectedItems.Count;
List<string> itemValues = new List<string>();
if (count != 0)//避免未选中时,点击删除中断程序
{
//将每一个选中项,推入到列表变量中
for (int i = 0; i < count; i++)
{
j++;
itemValues.Add(listBox1.SelectedItems[i].ToString());
}
//对列表变量中每一项循环进行删除
foreach (string item in itemValues)
{
j++;
listBox1.Items.Remove(item);
}
MessageBox.Show(j.ToString());
}
else
{
MessageBox.Show("请选择需要删除的爱好!");
}
方案二:自己写,效率提升一倍
//方案2 对列表全部项循环,删除选中的项 2021年11月2日 点击删除中断程序,如列表100项,选中3项,循环3次
int j = 0;
//判断是否有选中项,避免因未选中时,
int index = listBox1.SelectedIndex;
if (index >= 0)
{
int k = listBox1.Items.Count;
for (int i= index; i< k; ) {
string temp = listBox1.SelectedItem.ToString();
listBox1.Items.Remove(temp);
j++;
i = listBox1.SelectedIndex;
if (i==-1) {
MessageBox.Show(j.ToString());
break;
}
}
}
else
{
MessageBox.Show(j.ToString());
}