C# DataGridView滚动到最后一行,WrapMode为true

C# DataGridView滚动到最后一行,WrapMode为true,c#,winforms,datagridview,C#,Winforms,Datagridview,在我的winforms.net4应用程序中,我必须在DataGridView的底部不断添加新行。该行包含两列,我必须: 单元格内长字符串的换行/换行。为此我做了 myDGV.DefaultCellStyle.WrapMode=true 滚动到底部以显示最后添加的行,如果需要,也显示滚动条。所以我做了 myDGV.ScrollBars=滚动条。两者都有; myDGV.FirstDisplayedScrollingRowIndex=lastRow.Index 并通过数据源将数据绑定到myDGV 换行

在我的winforms.net4应用程序中,我必须在
DataGridView
的底部不断添加新行。该行包含两列,我必须:

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

    myDGV.DefaultCellStyle.WrapMode=true

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

    myDGV.ScrollBars=滚动条。两者都有;
    myDGV.FirstDisplayedScrollingRowIndex=lastRow.Index

  • 并通过数据源将数据绑定到
    myDGV

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

    • 滚动条没有滚动到底部。有些时间停留在中间。所以我必须选择一行并手动滚动以查看最后一行
    • 手动滚动不像所有行具有相同高度那样平滑。我认为滚动条试图按行滚动,而不是按像素滚动。如果在“高”行之间有“短”行,滚动时将跳过前一行
    有没有办法解决这两个问题?我应该考虑另一个WiFrm控件吗?

    你试过了吗? FirstDisplayedScrollingRowIndex:

    或者使用DevXPress控件,您可以通过简单的方式实现此操作

    希望我能帮助你


    我现在很清楚你的答案。我想你对lastRow.index有问题,你试过这个吗?:dataGridView1.ClearSelection()//如果你愿意

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

    dataGridView1.Rows[nRowIndex].Selected=true; dataGridView1.Rows[nRowIndex]。单元格[nColumnIndex]。Selected=true

    //如果你想向下滚动的话。 dataGridView1.FirstDisplayedScrollingRowIndex=nRowIndex

    资料来源: