Dibujar Libremente en vb.net

Una actividad que a muchos nos ha gustado como pasatiempo es dibujar libremente, eso lo podemos hacer desde programas de dibujo como paint (uno de los mas conocidos por venir incluido en windows) o cualquier otro.

sin embargo en algunas situaciones estando en la universidad o no, por x o y motivos nos vemos en la necesidad de que queremos una aplicacion personalizada a nuestro gusto para que realice lo que queramos, ante esta situacion lo mas adecuado es que nosotros mismos desarrollemos la aplicacion y en este caso no haremos la excepcion, vamos a desarrollar un simple programa que servira para dibujar dentro de un panel lo que queramos…

Muy bien, inicialmente vamos a crear una simple interfaz para nuestro diseñador, para ello usaremos un panel que es el area donde dibujaremos, 2 combobox (uno para variar el color y el otro para variar el tamaño del lapiz), y usaremos 1 boton donde programaremos el proceso de limpiar el area de dibujo. Nos debe de quedar similar similar al siguiente formulario

Luego realizamos el siguiente import para habilitar todas las funcionalidades de la libreria graphics:


Imports System.Drawing.Graphics

despues declaremos las siguientes variables que usaremos para el programa:


Public X1, X2, Y1, Y2, C As Integer

Dim y AsInteger
Dim inicio As Integer = 0
Dim W System.Drawing.Color = Color.Aqua
Dim H As System.Drawing.Pen
Dim bandera As Integer

Antes de continuar recordemos que a los combos que hemos añadido, tenemos que cargarle los valores desde el diseñador, ya sea para variar el color o el tamaño de la linea, tal como se ve en las imagenes:

Muy bien ahora sabemos como debe de quedar nuestro formulario personalizado, ahora agregamos el siguiente codigo en el evento load:


W = Color.Black

H =New Pen(W, 1)

inicio = 1

Me.Combo_tamaño.Text = 1

Me.Combo_color.Text = "Negro"

Posteriormente, en el evento mousedown “cuando haga click” programamos lo siguiente:


PrivateSub Panel1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown

bandera = 1

X1 = 0

X2 = 0

Y1 = 0

Y2 = 0

C = 0

End Sub

Luego, pasamos al evento MouseMove, que es donde se va air creando la linea segun vamos moviendo el mouse y estemos haciendo click, entonces, escribimos lo siguiente:


PrivateSub Panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove

If inicio = 1 Then

 X1 = e.X

 Y1 = e.Y

      If bandera = 1 Then

       y = y + 1

           If  y = 1 Then

            If C = 1 Then

              Dim J = Panel1.CreateGraphics

              J.DrawLine(H, X1, Y1, X2, Y2)

            End If

           End If

     If y = 1 Then

        X2 = X1

        Y2 = Y1

        C = 1

        y = 0

      End If

  End If

 End If

End Sub

Luego, en el evento Mouse Up cambiamos de estado la variable bandera a “0” para indicar que se ha soltado el boton izquierdo del mouse y que ya no se esta presionando:

PrivateSub Panel1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseUp
bandera = 0
End Sub

Continuamos ahora con la programacion del combobox de cambio de color, esto lo hacemos en el evento SelectedIndexChanged:


Private Sub Combo_color_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Combo_color.SelectedIndexChanged

Select Case Me.Combo_color.Text

Case "Negro"

W = Color.Black

H =    New Pen(W, CInt(Me.Combo_tamaño.Text))

Case "Morado"

W = Color.Violet

H =New Pen(W, CInt(Me.Combo_tamaño.Text))

Case "Azul"

W = Color.Blue

H =New Pen(W, CInt(Me.Combo_tamaño.Text))

Case "Verde"

W = Color.Green

H =New Pen(W, CInt(Me.Combo_tamaño.Text))

Case "Rojo"

W = Color.Red

H =New Pen(W, CInt(Me.Combo_tamaño.Text))

Case "Naranja"

W = Color.Orange

H =New Pen(W, CInt(Me.Combo_tamaño.Text))

Case "Amarillo"

W = Color.Yellow

H =New Pen(W, CInt(Me.Combo_tamaño.Text))

Case "Marron"

W = Color.Maroon

H =New Pen(W, CInt(Me.Combo_tamaño.Text))

End Select

End Sub

Luego para realizar el cambio de tamaño de linea, solo tenemos que colocar una instruccion dentro del combobox tamaño, en el evento SelectedIndexChanged:


PrivateSub Combo_tamaño_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Combo_tamaño.SelectedIndexChanged

H =New Pen(W, CInt(Me.Combo_tamaño.Text))

End Sub

Por ultimo, para limpiar todo lo que hemos dibujado en el panel, solo hay que colocar la siguiente linea en el evento click del boton borrar:

Panel1.Refresh()

Listo, eso es todo amigos, ahora se puede observar en las siguientes imagenes los resultados del dibujo libre a mano alzada desde vb.net:

Descargar programa

Anuncios

3 respuestas a “Dibujar Libremente en vb.net

  1. Muchas gracias,
    personas como tú, nos enseñan que nuestro conocimiento no es nada si no lo compartimos.
    Me servirá para una herramienta que quiero implementar en mi trabajo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s