Scroll to bottom of C# DataGridView

后端 未结 2 696
攒了一身酷
攒了一身酷 2020-12-16 09:42

I\'m trying to scroll to bottom of a DataGridView in a C# WinForm.

This code works with a TextBox:

textbox_txt.SelectionStart = textbox_txt.Text.Leng         


        
相关标签:
2条回答
  • 2020-12-16 09:54

    To scroll to bottom of DataGridView try this.

    dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount-1;
    
    0 讨论(0)
  • 2020-12-16 10:11

    As a commercial programmer, I use a C# DLL to handle all my DataGridView projects which gives me language freedom for whatever project I undertake. All of my programs trap all key-presses so that I can use them for my own purposes. For DataGridView scrolling, I use the PageUp/PageDown keys for a single page, Ctrl/Page for single line and Alt/Page for top (Up) and bottom (Down). C# code and Basic calling sequence as follows:

    //---------- 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
    
    0 讨论(0)
提交回复
热议问题