关于checkedlistbox控制checkbox的问题
一个checkbox,一个checkedlistbox;现在已经实现用checkbox控制checkedlistbox全选和全不选。代码如下:
当点击checkbox使得checkedlistbox全选后,还想实现将checkedlistbox里的某一项前面的勾去掉后,checkbox前面的勾也去掉。代码如下:
但是问题来了:此时,checkbox前面的勾去掉的同时,checkedlistbox所有项前面的勾也都去掉了。调试了一下,发现原因是checkedListBox1_SelectedIndexChanged被调用后,紧接着checkBox1_CheckedChanged被调用,导致把checkedlistbox所有项前面的勾也都去掉了。怎么解决这个问题呢??
另外发现,如果不先点击checkbox,只操作checkedlistbox的话,checkedListBox1_SelectedIndexChanged被调用后checkBox1_CheckedChanged就不会被调用。
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
checkedListBox1.SetItemChecked(i, true);
}
}
else
{
for (int i = 0; i < this.checkedListBox1.Items.Count; i++)
{
checkedListBox1.SetItemChecked(i, false);
}
}
}当点击checkbox使得checkedlistbox全选后,还想实现将checkedlistbox里的某一项前面的勾去掉后,checkbox前面的勾也去掉。代码如下:
private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
if (checkedListBox1.GetItemChecked(i) == false)
{
checkBox1.Checked = false;
break;
}
}
}但是问题来了:此时,checkbox前面的勾去掉的同时,checkedlistbox所有项前面的勾也都去掉了。调试了一下,发现原因是checkedListBox1_SelectedIndexChanged被调用后,紧接着checkBox1_CheckedChanged被调用,导致把checkedlistbox所有项前面的勾也都去掉了。怎么解决这个问题呢??
另外发现,如果不先点击checkbox,只操作checkedlistbox的话,checkedListBox1_SelectedIndexChanged被调用后checkBox1_CheckedChanged就不会被调用。
...全文
相关推荐
每当表单加载时,保持CheckBox和Checkedlistbox状态
使用数据库,文件IO或注册表。 如果您需要有关如何使用它的帮助。 Google会提供帮助。
CheckedListBox控件的法
dropdownlist下拉框变成checkbox可以根据这个进行修改
C# CheckedListBox控件的用法总结
一般认为:foreach (object obj in checkedListBox1.SelectedItems)即可遍历选中的值。 其实这里遍历的只是高亮的值并不是打勾的值。遍历打勾的值要用下面的代码: for (int i = 0; i < checkedListBox1.Items.Count; i++) { if (checkedListBox1.GetItemChecked(i)) { MessageBox.Show(checkedListBox1.GetItemText(checkedListBox1.Items[i])); } } 最近用到checkl
CheckedlistBox的应用
CheckedlistBox的应用
CheckedListBox例子(C#源代码编写)
CheckedListBox例子(C#源代码编写) CheckedListBox例子,C#源代码



