添加表头
设置复选框
DataGridViewCheckBoxColumn cell1 = new DataGridViewCheckBoxColumn();
// 表头显示文字
cell1.HeaderText = "";
// 表头宽度
cell1.Width = 80;
selectColDataGridView.Columns.Add(cell1);
点击一次下拉框箭头就展开
描述问题
默认情况下:点击 combobox 文本部分,需要3次点击,单击向下箭头需单击两次,才能展开 combobox
解决
将 EditMode
属性设置为 EditOnEnter
不能禁止编辑(设置readonly)
问题
如果设置为 readonly = true
,combobox将不能展开
但是又 不想编辑文字单元格
解决
添加表头时,设置为 ReadOnly
DataGridViewTextBoxColumn cell2 = new DataGridViewTextBoxColumn();
cell2.HeaderText = "列";
cell2.Width = 200;
selectColDataGridView.Columns.Add(cell2);
cell2.SortMode = DataGridViewColumnSortMode.NotSortable;
// 关键代码,禁止编辑
cell2.ReadOnly= true;
添加数据
for (int i = 0; i < selectHeads.Length; i++)
{
// 添加一行
int index = selectColDataGridView.Rows.Add();
// 给该行的第一个单元格是复选框,设置值
selectColDataGridView.Rows[index].Cells[0].Value = false;
// 给该行的第二个单元格设置值
selectColDataGridView.Rows[index].Cells[1].Value = selectHeads[i];
// 给该行的第三个单元格设置值
selectColDataGridView.Rows[index].Cells[2].Value = "求和";
}
获取操作
有复选框时,获取勾选的项、索引
int rowIndex = 0;
foreach (DataGridViewRow row in dataGridView.Rows)
{
bool check = (bool)row.Cells[0].Value; // 第一列是复选框
if (check)
{
System.Diagnostics.Debug.WriteLine(rowIndex + "," + row.Cells[1].Value + "," + row.Cells[2].Value);
}
rowIndex++;
}