如何以编程方式编辑datagridview?

时间:2012-03-02 13:55:48

标签: c# datagridview

我有一个连接到数据库的datagridview。我有一个复选框,用于在datagridview中启用数据编辑。如果选中该复选框,则只能编辑1列datagridview,编辑后单击“保存”按钮将其反映在数据库中,当取消选中复选框时,禁用编辑。

我尝试过这样的事情:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (checkBox1.CheckState == CheckState.Checked)
        {
            dataGridView1.CurrentRow.ReadOnly = false;
            dataGridView1.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2;
        }
        else if (checkBox1.CheckState == CheckState.Unchecked)
        {
            dataGridView1.ReadOnly = true;
        }
    }

此代码忽略了选择要编辑的列的概念。

3 个答案:

答案 0 :(得分:3)

    for (int i = 0; i <= dataGridView1.ColumnCount - 1; i++)
    {
        dataGridView1.Columns[i].ReadOnly = true; 
    }

答案 1 :(得分:0)

要执行您想要的操作,您必须只设置要禁用的列。

dataGridView1.Columns[0].ReadOnly = true;            
dataGridView1.Columns[1].ReadOnly = false;

但是,你想这样做吗?阻止整列?

答案 2 :(得分:0)

你可以尝试

if(dataGridView1.SelectedCells.Count>0) dataGridView1.SelectedCells[0].ReadOnly=false; 

而不是

dataGridView1.CurrentRow.ReadOnly=false;