Jump to content
thoga31

EventArgs para PaintEventArgs

Recommended Posts

thoga31

Olá camaradas.

Com certeza que quando se iniciaram na classe Graphics do espaço System se depararam com o famoso problema de carregar num botão e, com isso, ordenar-se a pintura de um Panel ou da Form ou outro.

Já tive de criar sistemas complexos para conseguir relacionar estes eventos, mas decidi que era altura de falar com os experts. :D

Tenho um Button, o OK_Button, cujo objectivo é pintar um círculo no meio de um Panel, o Panel1. Para pintar o Panel, criei um Private Sub, chamado Pintar.

O meu problema está num calcanhar de Aquiles do VB.NET: para se pintar ou fazer outra coisa qualquer, é necessário inicializar os eventos, neste caso é preciso que o Graphics receba um "valor"... Como o faço no evento Click do OK_Button?

Mais, como faço para que no Sub Pintar ele pinte o Panel e não a Form? Quando chamado pelo evento Paint do Panel1 é fácil, não é preciso nada, mas com o botão não sei...

    Private Sub Pintar(ByVal g As Graphics, ByVal X As Integer, ByVal Y As Integer)
        With g
            Using caneta As New Pen(Color.Red, 2)
                .DrawEllipse(caneta, New Rectangle(X, Y, 80, 80)) 'Círculo
            End Using
        End With
    End Sub

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
        'Pintar... ??
    End Sub

    Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
        PintarCirculo(e.Graphics, 30, 30) 'Este é fácil...
    End Sub

Espero ter sido claro.

Cumprimentos,

thoga31 :)


Knowledge is free!

Share this post


Link to post
Share on other sites
ribeiro55

Não é um, nem "o" calcanhar de Aquiles do VB.NET :D

Basta-te o CreateGraphics para dentro de uma referencia do tipo Graphics

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim g As Graphics = Panel1.CreateGraphics

        g.DrawEllipse(Pens.Black, 20, 20, 50, 50)
    End Sub


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
thoga31

Olha, agora é que já não é mesmo nem um nem o Calcanhar de Aquiles. Agora que já sei... :)

Obrigado, está a funcar na perfeição! :D


Knowledge is free!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.