none
VB2010图片浏览器:打开多个图片,上一张,下一张,自动浏览实现,麻烦各位大大了 RRS feed

  • 问题

  • 我是初学菜鸟,麻烦各位了。
    环境是VB2010,现在能做的就是打开一张图片,显示一张图片,Timer控件会使用一些了
    主要是我用的是OpenFileDialog,设置属性可以打开多个文件后就不知道怎么办了
    我是这样想的:
    是不是OpenFileDialog将打开的图片放在一个类似数组的地方,然后我调用一些参数就可以使用了?
    麻烦各位大大给出点源代码,谢谢了!
    2012年11月22日 14:07

答案

  • 你好,

    在OpenFileDialog打开多个文件之后,你可以定义一个字符串类型的数组从OpenFileDialog.FileNames取到所有文件的路径。我写了个例子,不太完善,仅作参考吧。

    Public Class Form1
        '用它来取到所有文件路径
        Dim ImageList() As String
        Dim currentIndex As Integer = 0
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            OpenFileDialog1.ShowDialog()
        End Sub
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            OpenFileDialog1.Multiselect = True
            OpenFileDialog1.InitialDirectory = "C:\Users\Public\Pictures\Sample Pictures"
            OpenFileDialog1.Filter = "Image Files|*.jpg;*.jpeg;*.png"
            Timer1.Interval = 2000
            PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize
        End Sub
    
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            Dim imgCount As Integer = ImageList.Count
    
            If currentIndex < imgCount - 1 Then
                PictureBox1.ImageLocation = ImageList(currentIndex)
                currentIndex += 1
            Else
                currentIndex = 0
            End If
        End Sub
    
        Private Sub OpenFileDialog1_FileOk(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
            '当文件选择完毕,复制给这个数组
            ImageList = OpenFileDialog1.FileNames
            Timer1.Start()
        End Sub
    End Class
    
    Best regards,


    Shanks Zen
    MSDN Community Support | Feedback to us

    • 已标记为答案 Mars-Chizai 2012年11月24日 3:54
    2012年11月23日 7:48
    版主

全部回复

  • 你好,

    在OpenFileDialog打开多个文件之后,你可以定义一个字符串类型的数组从OpenFileDialog.FileNames取到所有文件的路径。我写了个例子,不太完善,仅作参考吧。

    Public Class Form1
        '用它来取到所有文件路径
        Dim ImageList() As String
        Dim currentIndex As Integer = 0
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            OpenFileDialog1.ShowDialog()
        End Sub
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            OpenFileDialog1.Multiselect = True
            OpenFileDialog1.InitialDirectory = "C:\Users\Public\Pictures\Sample Pictures"
            OpenFileDialog1.Filter = "Image Files|*.jpg;*.jpeg;*.png"
            Timer1.Interval = 2000
            PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize
        End Sub
    
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            Dim imgCount As Integer = ImageList.Count
    
            If currentIndex < imgCount - 1 Then
                PictureBox1.ImageLocation = ImageList(currentIndex)
                currentIndex += 1
            Else
                currentIndex = 0
            End If
        End Sub
    
        Private Sub OpenFileDialog1_FileOk(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
            '当文件选择完毕,复制给这个数组
            ImageList = OpenFileDialog1.FileNames
            Timer1.Start()
        End Sub
    End Class
    
    Best regards,


    Shanks Zen
    MSDN Community Support | Feedback to us

    • 已标记为答案 Mars-Chizai 2012年11月24日 3:54
    2012年11月23日 7:48
    版主
  • 你好,

    在OpenFileDialog打开多个文件之后,你可以定义一个字符串类型的数组从OpenFileDialog.FileNames取到所有文件的路径。我写了个例子,不太完善,仅作参考吧。


    非常感谢你的帮忙,谢谢!
    2012年11月24日 3:56