0

PictureBox を含むデータ リピーターがあり、画像を Web サーバーから取得する必要があります。画像をダウンロードする機能は既にありますが、バインディングが機能していないようです。私は Windows フォームを使用するのが初めてで、何が間違っているのかよくわかりません。

グリッドビューを使用してみましたが、画像が表示されていることを確認できます。

Public Function DlImg(ByVal _URL As String) As Byte()
    Dim _tmpImage As Image = Nothing
    Dim BytesOut As Byte()
    Try
        Dim _HttpWebRequest As System.Net.HttpWebRequest = DirectCast(System.Net.HttpWebRequest.Create(_URL), System.Net.HttpWebRequest)
        _HttpWebRequest.AllowWriteStreamBuffering = True
        Dim _WebResponse As System.Net.WebResponse = _HttpWebRequest.GetResponse():
        Dim _WebStream As System.IO.Stream = _WebResponse.GetResponseStream()
        _tmpImage = Image.FromStream(_WebStream)
        _WebResponse.Close()
        Using picture As Image = _tmpImage
            Using stream As New IO.MemoryStream
                picture.Save(stream, Imaging.ImageFormat.Jpeg)
                BytesOut = stream.GetBuffer()
            End Using
        End Using
    Catch _Exception As Exception
        Return Nothing
    End Try

    Return BytesOut
End Function

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ListData.Columns.Add("Image", Type.GetType("System.Byte[]"))
    For Each row As DataRow In ListData.Rows
        row("Image") = DlImg("http://rental.joshblease.co.uk/propertyimages/p184js94kv1qco1e1e1jt71ouv11lm6.jpg")
    Next row
    ImgListItem.DataBindings.Add("Image", ListData, "Image", True)
    DataGridView1.DataSource = ListData
    DataRepeater1.DataSource = ListData
End Sub
4

0 に答える 0