Просмотр списка выбранного элемента в PictureBox - PullRequest
0 голосов
/ 07 февраля 2019

Я новичок в vb и sql, может кто-нибудь помочь мне получить изображение, когда я щелкаю выбранные элементы в списке и просматриваю его в PictureBox, чтобы я мог обновить значения.

     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."

1 Ответ

0 голосов
/ 08 февраля 2019

Вы сделали правильный выбор .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
...