从网络浏览器到图片框获取图片

时间:2010-10-20 03:55:08

标签: vb.net browser picturebox

我在图片框中显示一些图片(不止一张)时出现问题。

 <div id="salary_total" style="display: block;"><table style="border: 3px solid rgb(71, 5, 6); padding-right: 1px;" bgcolor="#ffffff" cellpadding="0" cellspacing="0"><tbody><tr><td><img src="./images/counter/b.gif"></td>
<td><img src="./images/counter/3.gif" border="0"></td>
<td><img src="./images/counter/3.gif" border="0"></td>
<td><img src="./images/counter/0.gif" border="0"></td>
<td><img src="./images/counter/8.gif" border="0"></td>
</tr></tbody></table> 

这些图片链接显示为类似3308的数字,每次页面加载时都会更改。如何在图片框中显示这些图片(彼此相邻)。

Try
    Dim htmlDocument As HtmlDocument = Me.WebBrowser1.Document
    Dim htmlElementCollection As HtmlElementCollection = htmlDocument.Images
    For Each htmlElement As HtmlElement In htmlElementCollection
        Dim imgUrl As String = htmlElement.GetAttribute("src")
        If imgUrl.Contains("counter") Then
            Me.PictureBox1.ImageLocation = imgUrl.Substring(0, 41)
        End If
    Next

这个适用于第一张图片,我怎么能有3个以上的图片框,并为其他3张图片做同样的事情?,像3.gif将会转到第1张图片盒,依此类推?!

2 个答案:

答案 0 :(得分:2)

我明白了:这是解决方案!感谢

Try
            Dim htmlDocument As HtmlDocument = Me.WebBrowser1.Document
            Dim htmlElementCollection As HtmlElementCollection = htmlDocument.Images
            Dim ImagesFound As Integer = 0
            For Each htmlElement As HtmlElement In htmlElementCollection
                Dim imgUrl As String = htmlElement.GetAttribute("src")
                If imgUrl.Contains("counter") Then
                    ImagesFound+=1
                    Select Case ImagesFound
                         Case 1 
                              PictureBox1.ImageLocation = imgUrl
                              Label1.Text = PictureBox1.ImageLocation.ToString()
                         Case 2 
                              PictureBox2.ImageLocation = imgUrl
                              '... etc.
                    End Select

                End If
            Next
        Catch ex As Exception
        End Try

答案 1 :(得分:0)

首先,ImageLocation会像这样出现:

http://www.link.com./images/counter/8.gif

这可能不是你想要的。

其次,Shoban说你应该使用常规文本和CSS。他是对的。

第三,如果要在单个图片框中显示多个图像,则需要制作单个图像对象并将其他图像绘制到其中。有VB.Net函数和本机Windows API(CopyRect?)。

如果您愿意,可以使用多个图片框。