Мой datagridview мерцает и очень медленно загружается. Я размышлял о datgridview от Microsoft и обнаружил, что существует свойство back buffer, которое не видно из winForm. Как установить это свойство?
Как переопределить Microsoft datagridview, чтобы вернуть буферизацию в VB.NET?
Ответ 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