我需要以编程方式在编辑模式下设置单元格。我知道将那个单元格设置为CurrentCell然后调用方法BeginEdit(bool),它应该发生,但就我而言,事实并非如此。
我真的很想用带有几列的DGV,用户只能选择并编辑前两列。其他列已经是只读的,但是用户可以选择它们,而这正是我所不想要的。
所以我在想,告诉用户每次在单元格上完成写完时TAB,然后选择第二个单元格,然后再次选择并选择并开始编辑下一行的第一个单元格…
我怎样才能做到这一点?
设置CurrentCell,然后致电BeginEdit(true)对我来说效果很好。
CurrentCell
BeginEdit(true)
以下代码显示了用于将KeyDown单元格设置为可编辑的事件的eventHandler 。
KeyDown
我的示例仅实现了所需的按键替代之一,但从理论上讲,其他替代也应如此。(而且我一直将[0] [0]单元格设置为可编辑,但其他任何单元格都可以使用)
private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Tab && dataGridView1.CurrentCell.ColumnIndex == 1) { e.Handled = true; DataGridViewCell cell = dataGridView1.Rows[0].Cells[0]; dataGridView1.CurrentCell = cell; dataGridView1.BeginEdit(true); } }
如果您以前没有找到它,DataGridView FAQ是一个很棒的资源,由程序经理为DataGridView控件编写,其中涵盖了您可能想使用该控件做的大部分事情。