Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal.
Tenho um pequeno problema para resolver, acho que a coisa é muito simples, mas como não estou muito familiarizado com o VB isso ainda é um bicho de sete cabeças...
É o seguinte, tenho 16 PictureBoxes alinhadas em uma tabela num form.
Tenho também um array de inteiros a dizer-me o tempo em que a pictureBox deve carregar a imagem.
Por exemplo, dado o array: {0, 0, 400, 800, 1000, ... }
Eu quero que a primeira e a segunda sejam carregadas instantaneamente, a terceira seja carrega 400 milisegundos após iniciar o form, a quarta seja carregada 800 milisegundos após inicializar o fom, etc...
Pensei então em criar uma classe "timedPictureBox", que consiste num timer e numa picture box:
Public Class timedPicBox
Public pic As PictureBox
Public timer As System.Timers.Timer
Public Sub New(ByVal p As Point)
Me.pic.Location = p 'Especifica a localização da picture box no form
End Sub
'Inicia o timer para disparar após um intervalo de "time" segundos e a PictureBox carregar a imagem "img"
Public Sub Run(ByVal time As Integer, ByVal img As String)
AddHandler timer.Elapsed, AddressOf OnTimedEvent
Me.timer.AutoReset = False
Me.timer.Interval = time
Me.pic.Enabled = True
Me.pic.Visible = False
Me.pic.Image = Image.FromFile(img).Clone
Me.timer.Enabled = True
End Sub
Public Shared Sub OnTimedEvent(ByVal source As Object, ByVal e As System.Timers.ElapsedEventArgs)
source.pic.Visible = True
End Sub
End Class
O problema é: não funciona.
A execução simplemente para na chamada do New.
Qualquer ajuda é bem vinda.
Obrigado.
Victor
Carregando comentários...