//去除datagridview列表头排序
foreach (DataGridViewColumn item in dataList.Columns)
item.SortMode = DataGridViewColumnSortMode.NotSortable;
//去掉datagridview初始选中行
dataList.ClearSelection();//dataList,datagridview的Name
//遍历datagridview中的行,dataList-datagridview的Name
List<UCCheckBox> ckBox = new List<UCCheckBox>();//checkbox列表
for (int i = -1; i < dataList.Rows.Count; i++)
{
UCCheckBox ckBoxNew = new UCCheckBox();//自定义控件checkbox,可以换成你自己的控件
ckBoxNew.TextValue = "";
ckBoxNew.Checked = false;
//给checkBox确定所在行位置
Rectangle rect = this.dataList.GetCellDisplayRectangle(-1, i, true);//-1行标题所在列
//ckBox.Size = new Size(this.dataGridView1.Columns[0].Width, 28);
ckBoxNew.Size = new Size((rect.Width / 2), rect.Height);
//ckBox.Location = rect.Location;
ckBoxNew.Location = new Point(rect.Left + 16, rect.Top);
ckBoxNew.CheckedChangeEvent += new EventHandler(ckBox_CheckedChanged);
ckBox.Add(ckBoxNew);
this.dataList.Controls.Add(ckBoxNew);
//ckBoxNew.Dispose();
Application.DoEvents();
}
//说明:datagridview每添加一个控件占用一个句柄,添加过多,容易出错
//datagridview自带的checkbox
DataGridViewCheckBoxColumn columncb = new DataGridViewCheckBoxColumn();
columncb.FlatStyle = FlatStyle.Popup ;
columncb.HeaderText = "👆全选";
columncb.Name = "cb_check";
columncb.TrueValue = true;
columncb.FalseValue = false;
columncb.DataPropertyName = "IsChecked";
dataList.Columns.Insert(0, columncb);//dataList--datagridview的Name
来源:CSDN
作者:予非池物
链接:https://blog.csdn.net/qq_40155090/article/details/104015646