滚动到C#DataGridView的底部

本文关键字:底部 C#DataGridView 滚动 | 更新日期: 2023-09-27 18:29:38

我正试图在C#WinForm中滚动到DataGridView的底部。

此代码适用于TextBox:

textbox_txt.SelectionStart = textbox_txt.Text.Length;
textbox_txt.ScrollToCaret();

但我不知道如何使用DataGridView。有什么需要帮忙的吗?

滚动到C#DataGridView的底部

要滚动到DataGridView的底部,请尝试此操作。

dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount-1;

作为一名商业程序员,我使用C#DLL来处理我所有的DataGridView项目,这让我可以为我承担的任何项目提供语言自由。我的所有程序都会锁住所有按键,这样我就可以把它们用于自己的目的。对于DataGridView滚动,我对单个页面使用PageUp/PageDown键,对单行使用Ctrl/page键,对顶部(向上)和底部(向下)使用Alt+page键。C#代码和基本调用序列如下:

//---------- C# Dll Partial Source -----------
public int RowShow
   { get { return vu.DisplayedRowCount(false); } }
public int RowCount 
   { get { return vu.RowCount; } }
public void PageMove(int rows)
{
    int rowlimit = vu.RowCount - 1;
    int calc = vu.FirstDisplayedScrollingRowIndex + rows;
    if (calc > rowlimit) calc = rowlimit;  // Go to bottom
    if (calc < 0)        calc = 0;         // Go to top
    vu.FirstDisplayedScrollingRowIndex = calc;
}
// ---------- End Data Grid View ----------

//---------- Calling Program C# ----------
public void Page_Key(int val, int lastKey)
{
    int inc = 1;                // vu is DataGridView
    If (val == 33) inc = -1;
    int rowsDisp = vu.RowShow;  // # of rows displayed
    int rowsMax  = vu.RowCount; // # of rows in view
    int rows     = 0;
    switch (lastKey)
    {        
      case 17:                  // Ctrl prior to Page
        rows = inc;
        break; 
      case 19:                  // Alt prior to Page
        rows = rowsMax * inc;
        break;
      default:
        rows = rowsDisp * inc
        break;
    }  // end switch
  vu.PageMove(rows)
} // end Page_Key

'----- Calling Program B4PPC, VB -----
Sub Page_Key(val,lastKey)     ' 33=PageUp, 34=Down
    inc = 1                   ' vu is DataGridView
    If val = 33 then inc = -1
    rowsDisp = vu.RowShow     ' # of rows displayed
    rowsMax  = vu.RowCount    ' # of rows in view
    rows     = 0
    Select lastKey
      Case 17                 ' Ctrl prior to Page
        rows = inc 
      Case 19                 ' Alt prior to Page
        rows = rowsMax * inc
      Case Else
        rows = rowsDisp * inc
    End Select
    lastKey = ""
    vu.PageMove(rows)
End Sub