前言
因工作需要,封装了一个可动态加载CheckBox的控件。
功能:
1、可设置行高;
2、可设置每行的数量;
3、可设置是否允许多选;
4、根据文本长度自动调整列宽;
5、选中项突出显示;
6、开放Checked改变时的action。
在此分享源码。
Demo截图
源码结构
说明:此类继承Panel,编译后会在“工具箱”生成用户控件,拖拽到winform窗口即可。
前端使用
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//实现选中项发生改变时的action
checkBoxList1.ItemCheckedChanged = (obj, ischeck) =>
{
label1.Text = "选中项:" + string.Join(",", checkBoxList1.CheckedItems).Trim(',');
};
//显示数据
button1.Click += (sender, e) => { InitCheckList(Convert.ToInt32(textBox2.Text),Convert.ToInt32(textBox1.Text),checkBox1.Checked); };
}
private void InitCheckList(int rowHeight, int CountPerRow,bool multiCheck)
{
//初始化参数
checkBoxList1.InitParam(rowHeight, CountPerRow, multiCheck);
//添加项
for (int i = 8899; i < 9000; i += 1)
checkBoxList1.AddItem(i, i.ToString());
}
}