Listview所选项目到PictureBox

时间:2019-02-07 13:02:29

标签: vb.net listview picturebox

我是vb和sql的新手,当我单击列表视图中的选定项并在PictureBox上查看它时,有人可以帮我找回图像吗?

.SideIndicator

1 个答案:

答案 0 :(得分:0)

您很好地选择了.Tag属性。它可以容纳任何类型的对象。我猜您正在使用DataReader循环填充列表视图。您将在每次迭代中创建一个新的列表视图项。您可以在此ListViewItem中用原始数据填充.Tag属性。然后,当选择该项目时,您检索原始数据,将其转换为Byte数组,并将其放置在MemoryStream中。然后,从流中填充.Image属性。

为简化起见,我使用了一条记录和一个TextBox。

Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
    RetrieveImage()
    Using MS As New MemoryStream(CType(txtName.Tag, Byte()))
        PictureBox1.Image = Image.FromStream(MS)
        PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    End Using
End Sub
Private Sub RetrieveImage()
    Using cn As New SqlConnection(My.Settings.SmallDBConnection)
        Using cmd As New SqlCommand("Select * From Sales.Customer Where CustomerID = 2", cn)
            cn.Open()
            Using dr As SqlDataReader = cmd.ExecuteReader
                dr.Read()
                txtName.Text = dr("CustomerName").ToString
                txtName.Tag = dr("Picture")
            End Using
        End Using
    End Using
End Sub