C# checkedlistbox 控件 有bug
加入集合 private void Form2_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("产品名称", typeof(string)); dt.Columns.Add("题目", typeof(string)); for (int i = 0; i < 10; i++) { DataRow dr = dt.NewRow(); dr["产品名称"] = "0001" + i; dt.Rows.Add(dr); } for (int i = 0; i < dt.Rows.Count; i++) { this.chb产品名称.Items.Add(dt.Rows[i]["产品名称"]); } }
//选中事件
private void chb产品名称_SelectedValueChanged(object sender, EventArgs e) { string de = (string)chb产品名称.SelectedItem; var index = chb产品名称.SelectedIndex; var t0 = chb产品名称.GetItemChecked(index); //第一次点击后 赋值, 第二次获取后 是false,第三次 也是false 有bug var t2 = chb产品名称.GetItemCheckState(index); if (t2==CheckState.Unchecked) { chb产品名称.SetItemCheckState(index, CheckState.Checked); } //var t1 = chb产品名称.GetSelected(index); //if (t1 && t0 == false) //{ // //chb产品名称.SetItemChecked(index, true); //} //else //{ // chb产品名称.SetItemChecked(index, false); //} //chb产品名称.SetItemChecked(index, !chb产品名称.GetItemChecked(index)); //判断是选中 取消, 不是选中 就 选中 // MessageBox.Show("00"); //chb产品名称.SetItemChecked(1,true) //var t = this.chb产品名称.CheckedItemCollection; }
//最后 设置 属性 解决
CheckOnClick = true;