2011-02-22 48 views
4


我有一个绑定到XML源的DataGridView。DataGridView单元格编辑

  1. 我在编辑单元格时遇到了问题。单击单元格变为选中状态,编辑时默认会覆盖它。我的要求说,它应该准备好进行编辑,而不是点击时选择。
  2. 我想每当按下'tab'键时动态生成一行。

我该如何做到这一点?

回答

2

关于问题1)

你可以试试这个:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
     { 
      this.dataGridView1.CellEnter += new DataGridViewCellEventHandler(myDataGrid_CellEnter); 
     } 
     void myDataGrid_CellEnter(object sender, DataGridViewCellEventArgs e) 
     { 
      if ((this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewTextBoxColumn) || 
       (this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn)) 
      { 
       this.dataGridView1.BeginEdit(false); 
      } 
     } 
+0

这个原因为每次用户点击内容时为'CellEnter'添加一个新的事件处理程序!为什么不按照'JonC'的建议简单地调用'dataGridView1.BeginEdit(false)', –

2

如果我正确理解你想要的,因为它被点击的细胞尽快进入编辑模式。这可以通过将DataGridView的EditMode属性设置为EditOnEnter来实现。 这使得但是选择在编辑控件中的文本,所以如果你不想,你可以使用:

dataGridView1_CurrentCellChanged(object sender, EventArgs e) 
{ 
     dataGridView1.BeginEdit(false); 
} 

你能解释一下你的动态添加的行是什么意思?

相关问题