 VB 
.NET -  
Criando um Show de Slides (revisitado)
VB 
.NET -  
Criando um Show de Slides (revisitado)|  | Hoje vou apresentar uma aplicação que exibe imagens de uma pasta selecionada ao estilo show de slides usando a linguagem VB .NET. |  | 
A aplicação usa o controle Timer para realizar a temporização e controlar a velocidade de exibição das imagens no controle PictureBox.
Nesta aplicação você vai aprender a usar os seguintes controles:
Timer - ativar/desativar e definir a propriedade Interval;
PictureBox - Exibir imagens
MenuStrip - Definir menus
TrackBar - Controlar
O programa utiliza a classe Slides.vb para definir os métodos que controlam a exibição das imagens no formulário;.
Recursos Usados:
Criando o projeto no VS Community 2017
Abra no VS community 2017 e no menu File clique em New Project;
A seguir selecione o template Visual Basic -> Windows -> Windows Forms Application e informe o nome SlideShow e clique em OK;
Agora abra o formulário Form1.vb e inclua os seguintes controles no formulário:
1 MenuStrip
1 PictureBox
1 TrackBar
1 Timer
Disponha os controles conforme o leiaute da figura abaixo:

Definindo o código do formulário
No formulário frmMain.vb do projeto inclua o código abaixo:
| Public Class frmMain    Private WithEvents Slides As New Slides    Private Sub BrowseToolStripMenuItem_Click(ByVal sender As System.Object, _
                                              ByVal e As System.EventArgs) _
                                              Handles BrowseToolStripMenuItem.Click
        Dim Browse As New FolderBrowserDialog
        Browse.Description = "Selecione a pasta de imagens"
        If Browse.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
            Try
                Slides.Procurar(Browse.SelectedPath)
                If Slides.TotalImages >= 0 Then
                    TrackBar.Value = 0
                    TrackBar.Minimum = 0
                    TrackBar.Maximum = CInt(Slides.TotalImages)
                End If
                Slides.Executar() ' executa o show de slides
                Me.Text = "Show de Slides - " & Browse.SelectedPath
            Catch ex As Exception
                ' Não faz nada se der um erro
            End Try
        End If
    End Sub    Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, _
                                            ByVal e As System.EventArgs) _
                                            Handles ExitToolStripMenuItem.Click
        Dim Response As MsgBoxResult
        Response = MsgBox("Deseja encerrar o programa ?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Show de Slides")
        If Response = MsgBoxResult.Yes Then
            End
        End If
    End Sub    Private Sub PlayPauseToolStripMenuItem_Click(ByVal sender As System.Object, _
                                                 ByVal e As System.EventArgs) _
                                                 Handles PlayPauseToolStripMenuItem.Click
        If Slides.Executar Then            If Slides.EmPausa Then
                Slides.Continuar()
            Else
                Slides.Pausar()
            End If
        Else
            Slides.Executar()
        End If
    End Sub    Private Sub StopToolStripMenuItem_Click(ByVal sender As System.Object, _
                                            ByVal e As System.EventArgs) _
                                            Handles StopToolStripMenuItem.Click
        Slides.Parar()
    End Sub    Private Sub SlowToolStripMenuItem_Click(ByVal sender As System.Object, _
                                            ByVal e As System.EventArgs) _
                                            Handles SlowToolStripMenuItem.Click
        Slides.Velocidade = 3000
    End Sub    Private Sub MediumToolStripMenuItem_Click(ByVal sender As System.Object, _
                                              ByVal e As System.EventArgs) _
                                              Handles MediumToolStripMenuItem.Click
        Slides.Velocidade = 1500
    End Sub    Private Sub FastToolStripMenuItem_Click(ByVal sender As System.Object, _
                                            ByVal e As System.EventArgs) _
                                            Handles FastToolStripMenuItem.Click
        Slides.Velocidade = 500
    End Sub    Private Sub RepeatToolStripMenuItem_Click(ByVal sender As System.Object, _
                                              ByVal e As System.EventArgs) _
                                              Handles RepeatToolStripMenuItem.Click
        Slides.RepetirExecucao = RepeatToolStripMenuItem.Checked
    End Sub    Private Sub TrackBar_Scroll(ByVal sender As System.Object, _
                                ByVal e As System.EventArgs) Handles TrackBar.Scroll
        Slides.Mover(TrackBar.Value)
    End Sub    Private Sub frmMain_Load(ByVal sender As System.Object, _
                             ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Text = "Show de Slides"
    End Sub    Private Sub Slides_Slide(ByVal Filename As String) Handles Slides.Slide
        Visualizador.ImageLocation = Filename
        TrackBar.Value = Slides.ImagemAtual
    End Sub
End Class | 
Definindo o código da classe Slides do projeto
Vamos criar uma classe chamada Slides.vb em nosso projeto via menu Project -> Add Class.
Inclua o código abaixo nesta classe:
| Public Class Slides    ' Private Members
    Private WithEvents timerExibir As New Timer
    Private ListaImagens As New ArrayList
    Private ProcurarSucesso As Boolean
    Private Intervalo As Integer = 1500
    Private TotalImagens As Integer = 0
    Private ItemAtual As Integer = 0
    Private Executando As Boolean
    Private Pausado As Boolean
    Private Repetir As Boolean    ' métodos privados
    Private Function Arquivos(ByRef Path As String,
                           ByRef Filtro As String) As ArrayList
        Dim TodosArquivos As New ArrayList
        Dim dirInfo As New IO.DirectoryInfo(Path)
        If dirInfo.Exists Then ' verifica se o caminho existe
            Dim dirArquivos As IO.FileInfo() = dirInfo.GetFiles("*.*")
            ' Percorre o caminho para os arquivos pelo filtro
            For Each fileinfo As IO.FileInfo In dirArquivos
                If InStr(Filtro, fileinfo.Extension, CompareMethod.Text) > 0 Then
                    TodosArquivos.Add(fileinfo.FullName) ' Adicionar no ArrayList
                End If
            Next
        End If
        Return TodosArquivos
    End Function    ' Construtor
    Public Sub New()
        timerExibir.Enabled = False
        timerExibir.Interval = Intervalo
    End Sub    ' métodos públicos
    Public Function Procurar(ByVal Path As String) As Boolean
        ListaImagens.Clear() ' limpa lista de imagens
        ListaImagens = Arquivos(Path, ".jpg.png.gif.bmp.jpeg")
        TotalImagens = ListaImagens.Count - 1 ' total das imagens
        If TotalImagens > 0 Then 'imagens encontradas
            ProcurarSucesso = True
            Return True
        Else
            Return False ' sem imagens
        End If
    End Function    Public Function Executar() As Boolean
        If ProcurarSucesso Then
            Executando = True
            timerExibir.Enabled = True
            If Pausado Then
                Me.Pausar()
            Else
                Pausado = False
            End If
        End If
    End Function    Public Function Parar() As Boolean
        If ProcurarSucesso Then
            timerExibir.Enabled = False
            ItemAtual = 0
            Executando = False
            Pausado = False
        End If
        Return False
    End Function    Public Function Pausar() As Boolean
        If ProcurarSucesso Then
            timerExibir.Enabled = False
            Pausado = Not timerExibir.Enabled
            Return Pausado
        End If
        Return False
    End Function    Public Function Continuar() As Boolean
        If ProcurarSucesso And Pausado Then
            timerExibir.Enabled = True
            Pausado = Not timerExibir.Enabled
            Return Pausado
        End If
        Return False
    End Function    Public Function Mover(ByVal Index As Integer) As Boolean
        If ProcurarSucesso Then
            If Index < ListaImagens.Count Then
                ItemAtual = Index
                If Executando Then
                    Me.Executar()
                End If
            End If
        End If
    End Function    ' Public Properties
    Public Property RepetirExecucao() As Boolean
        Get
            Return Repetir
        End Get
        Set(ByVal Value As Boolean)
            If Repetir <> Value Then
                Repetir = Value
            End If
        End Set
    End Property    Public Property Velocidade() As Integer
        Get
            Return Intervalo
        End Get
        Set(ByVal Value As Integer)
            If Value >= 500 And Value < 3000 And Value <> Intervalo Then
                Intervalo = Value
                timerExibir.Interval = Intervalo
            End If
        End Set
    End Property    Public ReadOnly Property TotalImages() As Integer
        Get
            Return TotalImagens
        End Get
    End Property    Public ReadOnly Property ImagemAtual() As Integer
        Get
            Return ItemAtual
        End Get
    End Property    Public ReadOnly Property EmExecucao() As Boolean
        Get
            Return Executando
        End Get
    End Property    Public ReadOnly Property EmPausa() As Boolean
        Get
            Return Pausado
        End Get
    End Property    Private Sub TimerExibir_Tick(ByVal sender As Object,
                              ByVal e As System.EventArgs) _
                              Handles timerExibir.Tick
        If ProcurarSucesso And Executando Then
            If ItemAtual < ListaImagens.Count Then
                RaiseEvent Slide(CStr(ListaImagens.Item(ItemAtual)))
                ItemAtual += 1
            Else
                If Repetir Then
                    ItemAtual = 0 ' Reseta se Repetir
                End If
            End If
        End If
    End Sub    ' Evento
    Public Event Slide(ByVal Filename As String)End Class | 
Essa classe contém os métodos usados para gerenciar as imagens exibindo-as como slides.
Executando o projeto teremos o resultado a seguir:

Pegue o projeto completo aqui:   VBNET_SLIDESHOW.zip
VBNET_SLIDESHOW.zip
Se 
dissermos que temos comunhão com ele (Jesus), e andarmos em trevas, mentimos, e 
não praticamos a verdade.
Mas, se andarmos na luz, como ele na luz está, temos comunhão uns com os outros, 
e o sangue de Jesus Cristo, seu Filho, nos purifica de todo o pecado.
1 João 1:6,7
| Veja os 
    Destaques e novidades do SUPER DVD Visual Basic 
(sempre atualizado) : clique e confira ! Quer migrar para o VB .NET ? 
 Quer aprender C# ?? 
 Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? | 
  Gostou ?   Compartilhe no Facebook
Compartilhe no Facebook
  
 Compartilhe no Twitter
 
Compartilhe no Twitter 
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
VB .NET - Lendo imagens em um banco de dados MySQL - Macoratti