.net 如何在Datagridview中选择并滚动到新行?
我有一个绑定到DB表的DataGridView。 DataGridView不可编辑,有些文本字段可以编辑数据,这些字段由按钮控制。 我有一个NewRow按钮,代码如下:.net 如何在Datagridview中选择并滚动到新行?,.net,datagridview,.net,Datagridview,我有一个绑定到DB表的DataGridView。 DataGridView不可编辑,有些文本字段可以编辑数据,这些字段由按钮控制。 我有一个NewRow按钮,代码如下: dataGridView1.AllowUserToAddRows = true; foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.Selected) { ro
dataGridView1.AllowUserToAddRows = true;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Selected)
{ row.Selected = false; }
}
dataGridView1.Rows[dataGridView1.NewRowIndex].Selected = true;
我需要的是:
- datagridview应该滚动到底部(新行所在的位置)
- 新行应该聚焦,以便文本字段显示新行(空)内容
bindSourceGS.Position = dataGridView1.NewRowIndex;
但这并没有选择datagridview的新行。
我想使用datagridview的新行,因为当用户按下“取消”按钮时,我不必删除数据集中的行和datagridview。行[I]具有IsNewRow属性。如果它是Winform,那么您可以使用它
dataGridView1.FirstDisplayedScrollingRowIndex
并将datagridview.CurrentCell
设置为新的行单元格地址
希望这对您有所帮助注意:如果您有混合行,FirstDisplayedScrollingRowIndex要成功,您需要确保行模板高度至少与最后一行高度相同。这是一个相当大的问题,因为我发现不能将任何行高度设置为大于行模板高度。我一直在研究这个问题,发现设置
dataGridView1.FirstDisplayedScrollingRowIndex=dataGridView1.Rows.count-1
只要AutoSizerowMode
属性未设置为显示的单元格
如果在设置
dataGridView1.FirstDisplayedScrollingRowIndex=dataGridView1.Rows.Count-1以及网格未滚动到底部时遇到问题,请尝试将AutosizeRowsMode
属性设置为AllCells
不要混合使用DataGrid和DataGridView,它们是不同的控件。我编辑了您的问题,以明确您使用的是DataGridView是的,这是Winform,您的建议都非常有效。谢谢