Как переопределить Microsoft datagridview, чтобы вернуть буферизацию в VB.NET?

Мой datagridview мерцает и очень медленно загружается. Я размышлял о datgridview от Microsoft и обнаружил, что существует свойство back buffer, которое не видно из winForm. Как установить это свойство?

Ответ 1

По какой-то причине Microsoft разместила там свойство DoubleBuffered, но не разрешила его включить. Вы можете захватить систему с помощью SubClassing.

Public Class MyDataGridView
   Inherits DataGridView

   Sub New()  
      MyBase.New()

      Me.DoubleBuffered = True
   End Sub
End Class

В вашей программе вы можете создать его, и новый класс должен появиться в вашем наборе инструментов. После этого вы можете перетащить его и использовать, как если бы это был обычный DataGridView с лучшими возможностями рисования.

Надеюсь, что это поможет.

Ответ 2

Я бы использовал listview, у него не было таких же проблем, как у datagridview.

Ответ 3

Я пытаюсь использовать datagridview как можно меньше, поскольку они очень сложны. Я бы использовал список, поскольку он заполняется намного быстрее.

Ответ 4

Как пробовать список и добавить его программно в многострочное текстовое поле. Это очень быстро и эффективно.

 Dim tbox As New TextBox

    Dim bobs As New List(Of String)

    bobs.Add("Williams")
    bobs.Add("Stephens")
    bobs.Add("Thomas")
    bobs.Add("Brown")
    bobs.Add("Knauff")

    For Each str As String In dinosaurs
      tbox.Text &= str & vbNewLine ' &= ensures you add the str not overwrite the previous data/vbnewline works as a cr(carriage return) and an lf(line feed)'
    Next