HANDLES
Olá pessoal, gostaria de poder criar uma ARRAY de handles para manipular o evento click de cada objeto( no meu caso, um PictureBox) , exemplo:
dim WithEvents obj as pictureBox
[ô]No Load do form eu crio 5 PicturesBox:
====================================================================================
dim i as integer
for i = 0 to 4
obj = new PictureBox
next
====================================================================================
[ô]Quando eu clicar nas picturesBox que foram criadas dinamicamente, deverei saber qual delas foi clicada.
private sub PictureBox1(sender as object, e as EventArgs) handles obj.Click [ô]aqui suponho que deve entrar o array de handles, mas estou fazendo referencia apenas a um obj.
Msgbox [Ô]A imagem com indice tal foi clicada[Ô]
end sub
alguem sabe como que se faz isso para multiplos controles e poderia por favor me ajudar?
muito obrigado.
dim WithEvents obj as pictureBox
[ô]No Load do form eu crio 5 PicturesBox:
====================================================================================
dim i as integer
for i = 0 to 4
obj = new PictureBox
next
====================================================================================
[ô]Quando eu clicar nas picturesBox que foram criadas dinamicamente, deverei saber qual delas foi clicada.
private sub PictureBox1(sender as object, e as EventArgs) handles obj.Click [ô]aqui suponho que deve entrar o array de handles, mas estou fazendo referencia apenas a um obj.
Msgbox [Ô]A imagem com indice tal foi clicada[Ô]
end sub
alguem sabe como que se faz isso para multiplos controles e poderia por favor me ajudar?
muito obrigado.
Não é necessário criar um array de handlers para o evento. Basta adicionar um handler comum a todos os controles e acessar a referência ao controle passada pelo argumento [Ô]sender as object[Ô].
Qualquer controle clicado apontará para esse mesmo handler.
Dim pictureBox as PictureBox
For i as Integer = 1 to 4
pictureBox = new PictureBox
pictureBox.Name = [Ô]pictureBox[Ô] & i.ToString()
AddHandler pictureBox.Click, AddressOf pictureBox_Click
Me.Controls.Add(pictureBox)
Next
Private Sub pictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim pictureBox As PictureBox = CType(sender, PictureBox)
MessageBox.Show(pictureBox.Name)
End Sub
Qualquer controle clicado apontará para esse mesmo handler.
Muito obrigado Mordor, funcionou perfeitamente. vlw
Tópico encerrado , respostas não são mais permitidas