DataGridView单元格编辑

5

你好
我有一个绑定到XML源的DataGridView。

  1. 我在编辑单元格时遇到了问题。当单击单元格时,它会被选中,并且默认情况下进行编辑时,我们会覆盖它。我的要求是,在单击时应该准备好进行编辑,并且不被选中。
  2. 我想在按下“tab”键时动态生成一行。

我该如何实现这个功能呢?

2个回答

4

如果我理解正确,您希望单元格在被单击时立即进入编辑模式。这可以通过将 DataGridView 的 EditMode 属性设置为 EditOnEnter 来实现。

但是,这样会导致编辑控件中的文本被选定,如果您不想这样,可以使用以下代码:

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

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


3

关于问题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);
            }
        }

为什么不像'JonC'建议的那样简单地调用dataGridView1.BeginEdit(false),而每次用户点击内容时都会添加一个新的CellEnter事件处理程序! - S.Serpooshan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接