DataGridView实现某列可编辑和ChecBox全选

来源:互联网 发布:淘宝网购物流程图 编辑:程序博客网 时间:2024/06/06 08:43

环境举例:通过Button按钮,实现DataGridView中第一列(CheckBox)状态为是否全选,且DataGridView只有第一列可编辑,其他为只读。

注意:1、DataGridView某列可编辑的前提是DataGridView.ReadOnly=true;否则无论如何设置都无法满足某列可编辑。
2、DataGridView获取或者设置列值时,DataGridView.ReadOnly状态为False时,是无法设置或者获取选中行的值。状态必须为True。

举例说明:
1.DataGridView某列可编辑。
//用于处理DataGridView可编辑列
//只读状态都不可编辑,只有编辑状态可以设置单独列可编辑,其他列只读。
//可编辑状态,选中的行是无法获取数据和设置数据的,所以对所有行的某列进行复制的时,设置DataGridView为只读状态。

private void DataGridViewReadOnlyFalse(DataGridView dataGridView,int columnIndex)    {        dataGridView.ReadOnly = false;        dataGridView.Columns[columnIndex].ReadOnly = false;        for (int i = 0; i < dvToAddress.Columns.Count - 1; i++)        {            dataGridView.Columns[i + 1].ReadOnly = true;        }    }  2.DataGridView列CheckBox全选  private void btnAllSelect_Click(object sender, EventArgs e)    {        dvToAddress.ReadOnly = true;        if (_isSelectAll == false)        {            for (int i = dvToAddress.Rows.Count-1 ; i >= 0; i--)            {                dvToAddress.Rows[i].Cells[0].Value = true;            }            _isSelectAll = true;        }        else        {            for (int i = dvToAddress.Rows.Count-1 ; i >=0 ; i--)            {                dvToAddress.Rows[i].Cells[0].Value = false;            }            _isSelectAll = false;        }        DataGridViewReadOnlyFalse(dvToAddress, 0);    }
1 0