1 DataGridViewCheckBoxColumn dtCheck = new DataGridViewCheckBoxColumn();
2 dtCheck.DataPropertyName = "check";
3 dtCheck.HeaderText = "";
4 dataGridView1.Columns.Add(dtCheck);
5 dataGridView1.DataSource = DataTable; 6
以上代码 是在DataGridView中添加复选框
1 private void chkBox_CheckedChanged(object sender, EventArgs e)
2 {
3 if (this.chkBox.Checked == true)
4 {
5 for (int i = 0; i < dataGridView1.Rows.Count; i++)
6 {
7 this.dataGridView1.Rows[i].Cells[0].Value = true;
8 }
9 }
10 else
11 {
12 for (int i = 0; i < dataGridView1.Rows.Count; i++)
13 {
14 this.dataGridView1.Rows[i].Cells[0].Value = false;
15 }
16 } // this.dataGridView1.Rows[i].Cells[0].Value =false;
17
18 }
以上是一个CheckBox 单击事件 用作于 全选/反选
1 DataTable dt = (DataTable)dataGridView1.DataSource;
2 //使用方法
3 foreach(DataRow row in dt.Rows)
4 {
5 if (row["check"].ToString() == "True")
6 {
7 //处理方式
8 }
9 }
以上是后台代码操作过程 被选中的CheckBox 自己想怎么处理就怎么写
注:如果需要使复选框不能多选时,将DataGridView 的CellValueChanged事件和CurrentCellDirtyStateChanged事件
1 private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
2 {
3 DataGridView dgv = (DataGridView)sender;
4 if (dgv.IsCurrentCellDirty)
5 {
6 dgv.CommitEdit(DataGridViewDataErrorContexts.Commit);
7 }
8 }
9 private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
10 {
11 if (e.ColumnIndex == 0)
12 {
13 DataGridView dgv = (DataGridView)sender;
14 DataTable dt = (DataTable)dgv.DataSource;
15 DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgv.Rows[e.RowIndex].Cells[0];
16 bool value = (Boolean)checkCell.Value;
17 for (int i = 0; i < dt.Rows.Count; i++)
18 {
19 DataRow row = dt.Rows[i];
20 if (i != e.RowIndex && value)
21 {
22 row["check"] = false;
23 }
24 }
25 dgv.Invalidate();
26 }
27 }
========================================================================================================
dataGridView1中复选框批量选中
1、dataGridView1.SelectionMode = 'FullRowSelect ' // dataGridView1 可以选中整行
2、添加一个contextMenuStrip1 控件 //右键菜单
选择 的name = 'SelectToolStripMenuItem'
3、dataGridView1添加CellMouseDown事件 代码如下
1 private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
2 {
3 if (e.Button == MouseButtons.Right)
4 {
5 if (e.RowIndex >= 0)
6 {
7 //若行已是选中状态就不再进行设置
8 if (dataGridView1.Rows[e.RowIndex].Selected == false)
9 {
10 dataGridView1.ClearSelection();
11 dataGridView1.Rows[e.RowIndex].Selected = true;
12 }
13 //只选中一行时设置活动单元格
14 if (dataGridView1.SelectedRows.Count == 1)
15 {
16 dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
17 }
18 //弹出操作菜单
19 contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
20 }
21 }
22 }
4、添加SelectToolStripMenuItem的Click 事件 代码如下
1 private void SelectToolStripMenuItem_Click(object sender, EventArgs e)
2 {
3 foreach (var item in this.dataGridView1.SelectedRows)
4 {
5 int i = ((System.Windows.Forms.DataGridViewBand)((DataGridViewRow)item)).Index;
6
7 this.dataGridView1.Rows[i].Cells[0].Value = true;
8
9 }
10 }
这样 我们就完成批量选中复选框的功能了
转载于:https://www.cnblogs.com/yhyjy/p/3658409.html
