【问题标题】:DataGridView scroll to last row while WrapMode true当 WrapMode 为 true 时,DataGridView 滚动到最后一行
【发布时间】:2017-06-21 15:32:32
【问题描述】:

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

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

    myDGV.DefaultCellStyle.WrapMode = true;

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

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

并通过 DataSource 将数据绑定到 myDGV

换行模式运行良好,但如果某些行的高度不同,由于换行模式,滚动有两个问题:

  • 滚动条没有滚动到底部。有时停留在中间。所以我必须选择一行并手动滚动才能看到最后一行。
  • 如果所有行都具有相同的高度,手动滚动并不顺畅。我认为滚动条试图按行而不是按像素滚动。如果我在“高”行之间有“短”行,滚动时会跳过前一行。

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

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      相关资源
      最近更新 更多