2015-07-23 3 views
4

Я уже довольно много искал этот ответ, но никто не смог мне помочь. Я попытался использовать или даже увидеть, применимо ли .Focus(), поскольку другие веб-сайты предложили его, но это не так. Мне просто понравится DataGridView, HistoryData.Прокрутите до выбранного Datagridview Строка

, чтобы перейти к выбранному ряду. Это, конечно, так, но он не будет прокручивать его, когда количество элементов заполнит сетку. Может ли быть параметр, который отсутствует в сетке?

Вот мой код:

Private Sub HistorySearch_TextChanged(sender As Object, e As EventArgs) Handles HistorySearch.TextChanged 
    Try 
     If HistorySearch.Text.ToString <> "" Then 
      For Each HistoryRow As DataGridViewRow In HistoryData.Rows 
       HistoryData.ClearSelection() 
       For Each HistoryCell As DataGridViewCell In HistoryRow.Cells 

        If HistoryCell.Value.ToString.StartsWith(HistorySearch.Text.ToString) Then 
         HistoryRow.Selected = True 
         Dim i As Integer = HistoryData.CurrentRow.Index() 

        Else 
         HistoryRow.Selected = False 
        End If 
        If HistoryCell.Value.ToString.Contains(HistorySearch.Text.ToString) Then 
         HistoryRow.Selected = True 
         Dim i As Integer = HistoryData.CurrentRow.Index() 
         Return 
        Else 
         HistoryRow.Selected = False 
        End If 
       Next 
      Next 
     End If 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
End Sub 

ответ

3

Если я правильно понимаю ваш вопрос, вы можете перейти к конкретной строке в DataGridView, используя один из следующих вариантов:

CurrentCell

Если вы установите CurrentCell из DataGridView выбирает указанную ячейку и выполняет прокрутку, чтобы сделать ячейку видимой.

Например, чтобы выбрать последнюю строку и перейдите к нему:

'use suitable index, 10 is just for example 
DataGridView1.CurrentCell = dataGridView1.Rows(10).Cells(0) 

FirstDisplayedScrollingRowIndex

Вы также можете установить FirstDisplayedScrollingRowIndex для перехода к конкретной строке, но он не выбирает строку :

Например только свиток к 10-й строке:

'use suitable index, 10 is just for example 
DataGridView1.FirstDisplayedScrollingRowIndex = 10