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; 

 

posted @ 2019-11-05 08:44  enych  阅读(449)  评论(0编辑  收藏  举报