none
como reconhecer um objeto após o click com o mouse RRS feed

  • Discussão Geral

  • Amigos, tenho10 PictureBox num Form e não estou sabendo qual comando devo usar para ao clicar sobre qualquer um dos 10 PictureBox, a rotina me informe sobre qual deles foi clicado.

    Supondo que eu transforme os 10 PictureBox na matriz: MatrizPictureBox e use o loop for next, então quero que a rotina me avise em qual PictureBox eu clickei.

               Dim MatrizPictureBox = New PictureBox() {PictureBox1, PictureBox2, ....PictureBox10}

               For u=0 To 9

                 If MatrizPictureBox(u). aqui que eu não sei que comandos devo usar Then

                 TextBox1.Text = "Você clicou no PictureBox" & u: Exit For

               Next 

    Grato/Durval

     
    domingo, 13 de agosto de 2017 00:26

Todas as Respostas

  • Não Precisa Durval.

    Cada PictureBox tem um evento "Click" (como a maior parte dos controles possuem); ao você associar um método a esse evento, é possível:

    1) Associar um método diferente para cada PictureBox (pic1_Click, pic2_Click ... etc) e assim, cada um está em um código diferente.

    2) Associar TODOS os PictureBox ao mesmo método (picturebox_Click) e testar o argumento "sender".

    Ou seja:

    Public Sub PictureBox_Click(ByVal sender As Object, ByVal e As EventArgs)
       If sender Is PictureBox1 Then
    
       Else If sender Is PictureBox2 Then
    
       Else If sender Is PictureBox3 Then
    
       End If
    End Sub

    E no método "InitializeComponent" do Form, associe TODOS os 10 ao mesmo método:

    AddHandler PictureBox1.Click, AddressOf PictureBox_Click
    AddHandler PictureBox2.Click, AddressOf PictureBox_Click
    AddHandler PictureBox3.Click, AddressOf PictureBox_Click
    ...
    AddHandler PictureBox10.Click, AddressOf PictureBox_Click
    domingo, 13 de agosto de 2017 14:26
  • Boa noite, Durval

          

             Private Sub clicou(sender As Object, e As EventArgs) Handles PictureBox1.Click, PictureBox2.Click, PictureBox3.Click

    Select Case CType(sender, PictureBox).Name
                Case "PictureBox1"
                    MsgBox("Você clicou no PictureBox1")
                Case "PictureBox2"
                    MsgBox("Você clicou no PictureBox2")
                Case "PictureBox3" 'ou Else
                    MsgBox("Você clicou no PictureBox3")

            End Select



        End Sub

    Ou assim:

     Private Sub clicou(sender As Object, e As EventArgs) Handles PictureBox1.Click, PictureBox2.Click, PictureBox3.Click

            MsgBox("Você clicou em " & CType(sender, PictureBox).Name)


        End Sub

    Se der certo, marque como resposta.



    MARIANO1776


    • Editado Mariano1776 quarta-feira, 29 de novembro de 2017 00:24 Complemento de informação
    terça-feira, 28 de novembro de 2017 23:56
  • Boa noite.

    Teve algum progresso?


    MARIANO1776

    quarta-feira, 13 de dezembro de 2017 20:34
  • Boa noite.

    Conseguiu algum avanço?


    MARIANO1776

    sexta-feira, 16 de março de 2018 22:45