我有一个基于列表的应用程序运行速度很慢,因为我的DataGridView中的每一行都是手动构建为DataGridViewRow。为了解决性能问题,我决定使用DataSource(DataTable)。
我的问题:
我从我的数据库中收到的一个列中填充了图像ID。应用程序知道哪个图像属于哪个id。手动创建网格时,将int转换为位图并使用位图作为图像列的值没有问题。现在使用Datatable而不能让它工作。为了测试我编写了以下类:
Public Class test
Dim img As Bitmap
Public Sub New(image As Bitmap)
InitializeComponent()
Me.img = image
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt As New DataTable
dt.Columns.Add("StrCol")
dt.Columns.Add("ImgCol")
Dim row As DataRow = dt.NewRow
row.Item(0) = "Ohne Bild"
row.Item(1) = 0
Dim row2 As DataRow = dt.NewRow
row2.Item(0) = "Mit Bild"
row2.Item(1) = 1
dt.Rows.Add(row)
dt.Rows.Add(row2)
DataGridView1.DataSource = dt
End Sub
Private Sub DataGridView1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If e.ColumnIndex = 1 Then
If e.Value = 0 Then
e.Value = Nothing
Else
e.Value = img
End If
End If
End Sub
End Class
提示:
修改
由于误会,我会试着澄清我的问题;
基于列表我实际上并不意味着列表对象。我在那里很糟糕。基于列表我的意思是一个应用程序,显示他所做的用户数据库托管。我的应用程序的基础很简单:允许用户在datagridview中添加行,编辑和删除行。此信息在数据库中保存和编辑。行中的一些信息(准确地说是2列)显示为图标,而应用程序只是在数据库中保存了图标的id。因此,应用程序知道哪个ID属于哪个图标。
问题中的样本dt只是为了有所帮助。在应用程序中,它将从数据库接收到数据表的数据。
答案 0 :(得分:0)
我终于自己解决了。
我在我的主应用程序中创建了这个代码,这个代码要复杂得多,所以我不能在这里显示代码。对不起,谢谢你的帮助。
在将表格用作源代码之前,完成您需要做的每项更改非常重要,因为只要gridView必须更改显示的内容,就需要花费更多时间。