列表视图中选择项目的PictureBox

问题描述 投票:0回答:1

我是新用vb和sql,有人可以帮我找回图像,当我在列表视图中单击我的选择项目,查看它的图片框,这样我可以更新值。

     Private Sub lvRegistered_SelectedIndexChanged(sender As Object, e As 
     EventArgs) Handles lvRegisteredV1.SelectedIndexChanged

  If lvRegisteredV1.SelectedItems.Count > 0 Then
  pbRear.Image = Image.FromFile(lvRegisteredV1.SelectedItems(0).ToString)

  End If
  End Sub
         ------i have tried this but shows an error "An unhandled exception 
 of type 'System.NotSupportedException' occurred in mscorlib.dll
 Additional information: The given path's format is not supported."
vb.net listview picturebox
1个回答
0
投票

你做的.Tag属性的一个不错的选择。它可以容纳任何类型的对象。我猜你正在使用一个DataReader填充您的列表视图在一个循环。您正在创建在每次迭代一个新的列表视图项。这ListViewItem是你将填补与原始数据.TAG属性。然后,当选择的项目您检索的原始数据转换为字节数组,并将其放置在一个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
© www.soinside.com 2019 - 2024. All rights reserved.