Pregunta Desplácese hasta la parte inferior de C # DataGridView


Estoy intentando desplazarme hacia la parte inferior de un DataGridView en un C # WinForm.

Este código funciona con un TextBox:

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

... pero no sé cómo hacerlo con DataGridView. Cualquier ayuda, por favor?


31
2018-04-01 22:53


origen


Respuestas:


Para desplazarse al final de DataGridView prueba esto.

dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount-1;

65
2018-04-01 23:15



Como programador comercial, utilizo una DLL C # para manejar todos mis proyectos DataGridView, lo que me da libertad de lenguaje para cualquier proyecto que emprenda. Todos mis programas atrapan todas las pulsaciones de teclas para que pueda usarlas para mis propios fines. Para el desplazamiento de DataGridView, uso las teclas AvPág / AvPág para una sola página, Ctrl / Página para una línea y Alt / Página para arriba (Arriba) e inferior (Abajo). C # código y secuencia de llamada básica de la siguiente manera:

//---------- 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

3
2018-01-25 17:10