我有一个连接到数据库的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;
}
}
此代码忽略了选择要编辑的列的概念。
答案 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;