【发布时间】:2011-02-22 14:48:15
【问题描述】:
嗨
我有一个绑定到 XML 源的 DataGridView。
- 我在编辑单元格时遇到问题。单击时的单元格被选中,当它被编辑时,默认情况下我们会覆盖它。我的要求是它应该准备好进行编辑,并且在点击时没有被选中。
- 我想在按下“tab”键时动态生成一行。
我怎样才能做到这一点?
【问题讨论】:
标签: c# .net winforms datagridview
嗨
我有一个绑定到 XML 源的 DataGridView。
我怎样才能做到这一点?
【问题讨论】:
标签: c# .net winforms datagridview
如果我理解正确,您希望单元格在单击后立即进入编辑模式。这可以通过将DataGridView 的EditMode 属性设置为EditOnEnter 来实现。
但是,这会使编辑控件中的文本保持选中状态,因此如果您不希望这样做,可以使用:
dataGridView1_CurrentCellChanged(object sender, EventArgs e)
{
dataGridView1.BeginEdit(false);
}
你能解释一下动态添加行是什么意思吗?
【讨论】:
关于问题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);
}
}
【讨论】:
CellEnter 添加一个新的事件处理程序!为什么不按照“JonC”的建议直接致电dataGridView1.BeginEdit(false)