WindowsForm ComboBoxList 下拉框带复选框 可以动态添加

先来张效果图:

1.这里需要对控件进行重写,详细内容如下,对此不感兴趣的可以直接跳过这步,下载本人生成的dll,直接看第二小结,下载链接https://pan.baidu.com/s/1gfzrK5t

稍后在补

  

2.在C#工具箱中添加外部引用的可见控件

  有两种方法:

  1)在References中添加如上生成的dll,在Toolbox中添加一个Tag,在该Tag上右击选择ChooseItems,选择dll

  2)直接把需要的DLL文件拖到工具箱中,VS会自动在工具箱添加该DLL中的可见控件。

3.使用

  1)将控件拖拽入Form中,调整大小和位置

  2)添加AddItems方法,代码示例

 public Form1()
        {
            InitializeComponent();
            comCheckBoxList2.AddItems("1....");
            comCheckBoxList2.AddItems("2....");
            comCheckBoxList2.AddItems("3....");
        }

  示例图:

  3)添加checkbox的点击事件

  在该控件上右击进入属性页面,选择事件页面,双击ItemClick生成后台函数或者自己填写。添加如下代码:

 private void comCheckBoxList2_ItemClick(object sender, ItemCheckEventArgs e)
        {
            string text = comCheckBoxList2.GetItemText(comCheckBoxList2.Items[e.Index]);
            
        }

  其中text是复选框后面的文字内容,e.index是第几个,这很好理解。

  动态生成下拉复选框可以使用如下代码:

 public void additems(string pool)
        {
            jobs_result = new List<string>();
            try
            {
                jobs = DBJB.GetJobID(pool);
                foreach (job job in jobs)
                    comCheckBoxList2.AddItems(job.jid+"-"+job.jname);
            }
            catch { }
        }


  确认复选框选择了哪些,可以使用以下代码:

 private void comCheckBoxList2_ItemClick(object sender, ItemCheckEventArgs e)
        {
            string text = comCheckBoxList2.GetItemText(comCheckBoxList2.Items[e.Index]);
            if (jobs_result.Contains(text))
                jobs_result.Remove(text);
            else
                jobs_result.Add(text);
        }
MrNou
原文地址:https://www.cnblogs.com/yangsirc/p/8080510.html