DataGridView實現某列可編輯和ChecBox全選

環境舉例:通過Button按鈕,實現DataGridView中第一列(CheckBox)狀態爲是否全選,且DataGridView只有第一列可編輯,其他爲只讀。

注意:1、DataGridView某列可編輯的前提是DataGridView.ReadOnly=false;否則無論如何設置都無法滿足某列可編輯。
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);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章