我正在使用带有VB.net的VS-2012开发桌面应用程序。
这是一段代码。
Dim constring As String = "connection_string"
Using con As New SqlConnection(constring)
Using cmd As New SqlCommand("SELECT * FROM tbl_product", con)
cmd.CommandType = CommandType.Text
Using sda As New SqlDataAdapter(cmd)
Using ds As New DataSet()
sda.Fill(ds)
DataGridView1.DataSource = ds.Tables(0)
End Using
End Using
End Using
End Using
但是,如何显示符合单元格高度和宽度的图像?
我在设计模式下更改了行高(datagridview property-> row template - > height)。
但是,不知道如何使图像适合显示它。
答案 0 :(得分:1)
由于DataGridView绑定到DataSource(因此您可能未在设计时设置Columns属性),因此必须在运行时验证Cell是否正在托管Bitmap对象。
一种可能的方法是订阅CellPainting
事件,如果Cell .ValueType
是Type Bitmap,则重新定义Cell行为,将其.ImageLayout
属性设置为{{1 }}。
Zoom
<强>更新强>
Image作为字节数组存储在SQL数据库中
因此,为了识别图像托管单元,必须改变代码:
Private Sub DataGridView1_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
If (e.RowIndex < 0 Or e.ColumnIndex < 0) Then Return
If DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).ValueType = GetType(Bitmap) Then
CType(DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex),
DataGridViewImageCell).ImageLayout = DataGridViewImageCellLayout.Zoom
End If
End Sub