当WrapMode为true时,DataGridView滚动到最后一行

时间:2017-06-21 15:32:32

标签: c# winforms datagridview

在我的 winforms .NET 4 应用程序中,我必须在DataGridView的底部继续添加新行。该行包含两列,我必须:

  1. 为单元格内的长字符串换行/断行。为此我做了

    myDGV.DefaultCellStyle.WrapMode = true;

  2. 滚动到底部以显示最后添加的行,如果需要也显示滚动条。所以我做了

    myDGV.ScrollBars = ScrollBars.Both; myDGV.FirstDisplayedScrollingRowIndex = lastRow.Index;

  3. 并通过DataSource将数据绑定到myDGV

    换行模式工作正常,但如果某些行具有不同的高度,由于换行模式,滚动有两个问题:

    • 滚动条不会滚动到底部。有时候会留在中间。所以我必须选择一行并手动滚动才能看到最后一行。
    • 如果所有行具有相同的高度,则手动滚动不平滑。我认为滚动条试图按行逐个滚动。如果我有"短" " tall"之间的行其中,滚动时会跳过前者。

    有没有办法解决这两个问题?我应该考虑另一个winforms控件吗?

1 个答案:

答案 0 :(得分:-1)

你试过这个吗?:

FirstDisplayedScrollingRowIndex: link to

或者使用devexpress控件,您可以通过简单的方式实现...

希望我帮助你

我现在读完了你的答案。我觉得你的lastRow.index有问题,你试过这个吗?:dataGridView1.ClearSelection(); //如果你想要

int nRowIndex = dataGridView1.Rows.Count - 1; int nColumnIndex = 3;

dataGridView1.Rows [nRowIndex] .Selected = true; dataGridView1.Rows [nRowIndex] .Cells [nColumnIndex] .Selected = true;

//如果您想要向下滚动。 dataGridView1.FirstDisplayedScrollingRowIndex = nRowIndex;

源:

C# DatagridView Select last row