如何选择并滚动到Datagridview中的新行?

时间:2011-05-05 12:48:51

标签: .net datagridview

我有一个绑定到数据库表的DataGridView。 DataGridView不可编辑,有一些文本字段可以编辑数据,这些字段由按钮控制。 我有一个NewRow按钮,代码如下:

        dataGridView1.AllowUserToAddRows = true;
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            if (row.Selected)
            { row.Selected = false; }
        } 
        dataGridView1.Rows[dataGridView1.NewRowIndex].Selected = true;
我需要的是:

  • datagridview应滚动到底部(newRow所在的位置)
  • 应该关注newRow,以便文本字段显示新的(空)行(内容)

我试过了:

        bindSourceGS.Position = dataGridView1.NewRowIndex;

但是没有选择datagridview的newRow。 我想使用datagridview的newRow,因为当用户按下取消按钮时,我不必删除数据集中的行,而datagridview.Rows [i]有一个IsNewRow属性。

3 个答案:

答案 0 :(得分:13)

如果 Winform ,则可以使用此

dataGridView1.FirstDisplayedScrollingRowIndex

并将datagridview.CurrentCell设置为新的行单元格地址。

希望这有帮助

答案 1 :(得分:0)

注意:如果您有混合高行,FirstDisplayedScrollingRowIndex成功,您需要确保行模板高度至少与最后一行高度一样好。这是一个问题,因为我发现无法将行高度设置为大于行模板高度。

答案 2 :(得分:0)

我一直在研究这个问题,发现只要dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows.count-1属性未设置为AutoSizeRowsMode,设置DisplayedCells就可以正常工作。

如果您在设置dataGridView1.FirstDisplayedScrollingRowIndex=dataGridView1.Rows.Count -1时出现问题且网格未滚动到底部,请尝试将AutosizeRowsMode属性设置为AllCells