Sie können das Ereignis DataGridView1_Scroll zum Abrufen der spezifischen Bildlaufposition verwenden. unten wie -
Dim savedScrollPosition As Integer = 0
Private Sub DataGridView1_Scroll(sender As Object, e As System.Windows.Forms.ScrollEventArgs) Handles DataGridView1.Scroll
savedScrollPosition = e.NewValue
End Sub
Dann können Sie diese auf Datagridview-Eigenschaft zuweisen FirstDisplayedScrollingRowIndex nach neuen Zeile hinzugefügt wird. unten wie -
Public Class Form1
Dim i As Integer = 1
Dim savedScrollPosition As Integer = 0
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim timer As New Timer()
timer.Interval = 1000
AddHandler timer.Tick, AddressOf timer_Tick
timer.Start()
End Sub
Private Sub timer_Tick(ByVal sender As Object, ByVal e As EventArgs)
UpdateDGV()
i = i + 1
End Sub
Private Sub UpdateDGV()
DataGridView1.ColumnCount = 2
DataGridView1.Columns(0).Name = "Product_Name"
DataGridView1.Columns(1).Name = "Product_Price"
Dim row As String() = New String() {"Product # " + Convert.ToString(i), 1000 + i}
DataGridView1.Rows.Add(row)
'Keep your scrollbar at specific position
DataGridView1.FirstDisplayedScrollingRowIndex = savedScrollPosition
'keep your scrollbar at bottom of the grid
'DataGridView1.FirstDisplayedScrollingRowIndex = DataGridView1.RowCount - 1
End Sub
Private Sub DataGridView1_Scroll(sender As Object, e As System.Windows.Forms.ScrollEventArgs) Handles DataGridView1.Scroll
savedScrollPosition = e.NewValue
End Sub
End Class
Diese Frage vor und hat Antworten gefragt wurde: [Speichern und erste angezeigte Zeile zurücksetzen] (http://stackoverflow.com/a/39935694/6664878) oder [Überschreiben RowChanged Event] (http : //stackoverflow.com/a/1521507/6664878) ... hast du beides versucht? – soohoonigan