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
Fala Victor, beleza?
Entao, eu testei aqui e ele execute o construtor sem problemas. O problema eh que o construtor realmente nao esta mandando fazer nada. Ele ateh especifica o ponto que o pic deve iniciar, mas soh isso. Nao existe nenhuma rotina na sua classe que esteja fazendo aparecer um novo picturebox na tela nem nada assim.
Sua intencao eh instanciar um ovo picture box na tela de acordo com o tamanho de seu array ou a quantidade sera sempre fixa?