J'essaie de faire défiler vers le bas d'un DataGridView dans un WinForm C #.
Ce code fonctionne avec un TextBox:
textbox_txt.SelectionStart = textbox_txt.Text.Length;
textbox_txt.ScrollToCaret();
... mais je ne sais pas comment le faire avec un DataGridView. Une aide, s'il vous plaît?
Pour faire défiler vers le bas de DataGridView
essayez ceci.
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount-1;
En tant que programmeur commercial, j'utilise un C # DLL pour gérer tous mes projets DataGridView, ce qui me donne la liberté de langage pour tout projet que j'entreprends. Tous mes programmes interceptent toutes les touches pour que je puisse utiliser pour mes propres besoins. Pour le défilement DataGridView, j'utilise les touches PageUp/PageDown pour une seule page, Ctrl/Page pour une seule ligne et Alt/Page pour le haut (haut) et le bas (bas) .Code C # et séquence d'appel de base comme suit:
//---------- 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