none
Como Usar metodos diferentes no evento Click de um PictureBox selecionando somente em uma parte dele? RRS feed

  • Pergunta

  •  

    Bom dia,

     

    Estou precisando saber como usar apenas um pedaço do meu PictureBox, por exemplo, tenho uma figura 250px por 250 px e queria que no primeiro quadrante se alguem clicasse executa o métodoA, no segundo quadrante o metodoB, no terceiro quadrante o medotoC e no ultimo quadrante o metodoD

     

    Obrigado

    segunda-feira, 19 de novembro de 2007 12:53

Respostas

  • PictureBox[] arraypic = new PictureBox[10];
      for (int x = 0; x < 10; x++)
      {
          arraypic[x] = new PictureBox();
          arraypic[x].Size = new Size(10, 10);

          arraypic[x].Location = new Point(x * 10, 5);

          //Outras propriedades(image, etc)

      }

    segunda-feira, 19 de novembro de 2007 19:30
  • Você pode usar o evento MouseClick e fazer a separação dos quadrantes pelas coordenadas do ponteiro do mouse.

    Exemplo para uma Picturebox 400x400 dividido em 4 partes de 200x200:

     

    Code Block

    Private Sub PictureBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick

    If e.X < 200 And e.Y < 200 Then

    Me.Text = "1 quadrante"

    ElseIf e.X >= 200 And e.Y < 200 Then

    Me.Text = "2 quadrante"

    ElseIf e.X < 200 And e.Y >= 200 Then

    Me.Text = "3 quadrante"

    Else

    Me.Text = "4 quadrante"

    End If

    End Sub

     

     

    segunda-feira, 19 de novembro de 2007 19:38

Todas as Respostas

  • Ja fiz algo parecido com isso, mas no meu caso eu fiz um array de picturebox´s, não sei se vai servir pra você

    segunda-feira, 19 de novembro de 2007 17:56
  •  

    Olá Felipe,

     

    Bom vc poderia me dar um exemplo de como usar um array de picturebox???

     

    vlw

    segunda-feira, 19 de novembro de 2007 19:22
  • PictureBox[] arraypic = new PictureBox[10];
      for (int x = 0; x < 10; x++)
      {
          arraypic[x] = new PictureBox();
          arraypic[x].Size = new Size(10, 10);

          arraypic[x].Location = new Point(x * 10, 5);

          //Outras propriedades(image, etc)

      }

    segunda-feira, 19 de novembro de 2007 19:30
  • Você pode usar o evento MouseClick e fazer a separação dos quadrantes pelas coordenadas do ponteiro do mouse.

    Exemplo para uma Picturebox 400x400 dividido em 4 partes de 200x200:

     

    Code Block

    Private Sub PictureBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick

    If e.X < 200 And e.Y < 200 Then

    Me.Text = "1 quadrante"

    ElseIf e.X >= 200 And e.Y < 200 Then

    Me.Text = "2 quadrante"

    ElseIf e.X < 200 And e.Y >= 200 Then

    Me.Text = "3 quadrante"

    Else

    Me.Text = "4 quadrante"

    End If

    End Sub

     

     

    segunda-feira, 19 de novembro de 2007 19:38
  •  

    vlw kara...

     

    vou testar isso amanhã... pq hj acabou meu expediente e to indo pra faculdade... mas vlw pela ajuda...

     

    qquer coisa pergunto de novo

     

    abraço

    segunda-feira, 19 de novembro de 2007 19:38
  •  

    Vlw Luciano... era bem isso que eu queria mesmo...

     

    Aprovaitando gostaria de perguntar se ao invés de escrever algo diferente em cada quadrante eu colocasse novas figuras.

     

    Desde já agradeço pela ajuda

    terça-feira, 20 de novembro de 2007 11:20
  • Uma PictureBox suporta somente uma imagem então se você quiser alterar um pedaço da imagem vai ter que editar esse quadrante manualmente desenhando diretamente no bitmap. Nesse caso a solução mais simples é seguir a ideia do colega acima e usar várias PictureBoxes.
    terça-feira, 20 de novembro de 2007 13:23