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

时间:2023-03-09 15:21:10
WindowsForm ComboBoxList   下拉框带复选框 可以动态添加

先来张效果图:

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....");
}

  示例图:

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

  3)添加checkbox的点击事件

  在该控件上右击进入属性页面,选择事件页面WindowsForm ComboBoxList   下拉框带复选框 可以动态添加,双击ItemClickWindowsForm ComboBoxList   下拉框带复选框 可以动态添加生成后台函数或者自己填写。添加如下代码:

 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);
}