C# DataGridView表格控件-复选框 作者:马育民 • 2025-03-23 13:51 • 阅读:10012 # 添加表头 ### 设置复选框 ``` 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++; } ``` 参考: https://cloud.tencent.com/developer/ask/sof/112515893 原文出处:https://malaoshi.top/show_1GWoNWI9UcL.html