-
Imports System.Drawing.Drawing2D
-
-
Public Class Form1
-
Dim colorl As Color = Color.Black 'contiene el color del lápiz
-
Dim color1 As Color = Color.Purple 'contiene el primer color a usar en el degradado de la brocha
-
Dim color2 As Color = Color.White 'contiene el segundo color a usar en el degradado de la brocha
-
Dim estilo As LinearGradientMode = LinearGradientMode.Horizontal 'contiene el estilo por default para la brocha
-
-
Private Sub cmddibujar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmddibujar.Click
-
'validamos que todos los datos necesarios ya hallan sido introducidos
-
If txtx.Text = "" Or txty.Text = "" Or txtalto.Text = "" Or txtancho.Text = "" Or ((rb_lapiz.Checked = True) And (txttamano.Text = "" Or (rb_personalizado.Checked = True And txtpersonalizado.Text = ""))) Or (rb_brocha.Checked = True And lb.SelectedItems.Count = 0) Then
-
MessageBox.Show("Llena correctamente los campos", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)
-
txttamano.Focus()
-
Else 'si ya introdujo toodos los campos necesarios...
-
'creamos area para dibujar
-
Dim gra As Graphics = pb.CreateGraphics
-
'creamos rectangulo
-
Dim rec As Rectangle = New Rectangle(txtx.Text, txty.Text, txtancho.Text, txtalto.Text) 'asignamos los datos introducidos a las coordenadas "X" "Y", ancho y alto respectivamente
-
-
If rb_lapiz.Checked = True Then 'si selecciono el groupbox "Lápiz"
-
'creamos pluma
-
Dim pluma As Pen = New Pen(colorl, txttamano.Text) 'creamos una pluma con color seleccionado (por default negro) y tamaño introducido
-
'seleccionamos estilo de la pluma
-
If rb_guion.Checked = True Then
-
pluma.DashStyle = Drawing2D.DashStyle.Dash
-
Else
-
If rb_guionpunto.Checked = True Then
-
pluma.DashStyle = Drawing2D.DashStyle.DashDot
-
Else
-
If rb_guionpuntopunto.Checked = True Then
-
pluma.DashStyle = Drawing2D.DashStyle.DashDotDot
-
Else
-
If rb_punto.Checked = True Then
-
pluma.DashStyle = Drawing2D.DashStyle.Dot
-
Else
-
If rb_solida.Checked = True Then
-
pluma.DashStyle = Drawing2D.DashStyle.Solid
-
Else
-
If rb_personalizado.Checked = True Then
-
pluma.DashStyle = Drawing2D.DashStyle.Custom
-
Dim aux(txtpersonalizado.Text.Length) As String 'declaramos vector con el total de espacios igual al total de caracteres introducidos en el cuadro de texto "txtpersonalizado"
-
aux = txtpersonalizado.Text.Split(",") 'separamos por coma ","
-
Dim per(aux.Length - 1) As Single
-
'pasamos el array string al array single
-
For a As Integer = 0 To aux.Length - 1
-
per(a) = Val(aux(a))
-
Next
-
pluma.DashPattern = per
-
End If
-
End If
-
End If
-
End If
-
End If
-
End If
-
'dibujamos rectangulo
-
gra.DrawRectangle(pluma, rec)
-
-
Else 'si eligio la brocha
-
-
If rb_colorsolido.Checked = True Then 'si seleccionó color solido para llenar el rectangulo
-
Dim Brocha As SolidBrush = New SolidBrush(color1) 'creamos una nueva brocha con color "color1" (por default purpura)
-
gra.FillRectangle(Brocha, rec) 'llenamos el rectangulo usando la nueva brocha que acabamos de crear y basandonos en el rectangulo "rec"
-
ElseIf rb_rayado.Checked = True Then 'si selecciono rayado para llenar el rectangulo
-
'seleccionamos el estilo
-
Dim estilo1 As HatchStyle
-
Select Case lb.SelectedIndex
-
Case 0
-
estilo1 = HatchStyle.Horizontal
-
Case 1
-
estilo1 = HatchStyle.Vertical
-
Case 2
-
estilo1 = HatchStyle.ForwardDiagonal
-
Case 3
-
estilo1 = HatchStyle.BackwardDiagonal
-
End Select
-
Dim brocha As HatchBrush = New HatchBrush(estilo1, color1, color2) 'creamos la brocha, con el estilo y los dos colores seleccionados
-
gra.FillRectangle(brocha, rec) 'llenamos el rectangulo con la brocha que acabamos de crear
-
ElseIf rb_degradado.Checked = True Then
-
Dim Brocha As LinearGradientBrush = New LinearGradientBrush(rec, color1, color2, estilo)
-
gra.FillRectangle(Brocha, rec)
-
End If
-
-
End If 'end (If rb_lapiz.Checked = True Then)
-
End If
-
End Sub
-
-
Private Sub cmdcolor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcolor.Click
-
Dim dlgcolor As ColorDialog = New ColorDialog 'creamos una clase "ColorDialog" para abrir el cuadro de dialogo de colores para seleccionar un color
-
dlgcolor.Color = colorl 'asignamos el color que estará seleccionado por default al abrir el dialogo de color, un color "colorl" el cual por default vale "negro"
-
If dlgcolor.ShowDialog() = Windows.Forms.DialogResult.OK Then 'si preciono OK en el cuadro de dialogo de colores, entonces la variable "colorl" (colorLapiz) contendra el color del lápiz a usar para dibujar la linea
-
colorl = dlgcolor.Color
-
End If
-
End Sub
-
-
Private Sub cmdcolor1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcolor1.Click
-
Dim dlgcolor As ColorDialog = New ColorDialog 'creamos una clase "ColorDialog" para abrir el cuadro de dialogo de colores para seleccionar un color
-
If dlgcolor.ShowDialog() = Windows.Forms.DialogResult.OK Then 'si preciono OK en el cuadro de dialogo de colores, entonces la variable "color1" contendra el primer color usada en el degradado de la brocha
-
color1 = dlgcolor.Color
-
End If
-
End Sub
-
-
Private Sub cmdcolor2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcolor2.Click
-
Dim dlgcolor As ColorDialog = New ColorDialog 'creamos una clase "ColorDialog" para abrir el cuadro de dialogo de colores para seleccionar un color
-
If dlgcolor.ShowDialog() = Windows.Forms.DialogResult.OK Then 'si preciono OK en el cuadro de dialogo de colores, entonces la variable "color2" contendra el segundo color usada en el degradado de la brocha
-
color2 = dlgcolor.Color
-
End If
-
End Sub
-
-
Private Sub rd_lapiz_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rb_lapiz.CheckedChanged
-
If rb_lapiz.Checked = True Then
-
gb1.Enabled = True 'habilitamos el groupbox del Lápiz
-
Else
-
gb1.Enabled = False 'deshabilitamos el groupbox del Lápiz
-
End If
-
End Sub
-
-
Private Sub rd_brocha_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rb_brocha.CheckedChanged
-
If rb_brocha.Checked = True Then
-
gb2.Enabled = True 'habilitamos el groupbox de la brocha
-
Else
-
gb2.Enabled = False 'deshabilitamos el groupbox de la brocha
-
End If
-
End Sub
-
-
Private Sub lb_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lb.SelectedIndexChanged
-
'dependiendo del estilo de brocha seleccionado, se asigna a la variable "estilo" el respectivo estilo seleccionado
-
Select Case lb.SelectedIndex
-
Case 0
-
estilo = LinearGradientMode.Horizontal
-
Case 1
-
estilo = LinearGradientMode.Vertical
-
Case 2
-
estilo = LinearGradientMode.ForwardDiagonal
-
Case 3
-
estilo = LinearGradientMode.BackwardDiagonal
-
End Select
-
End Sub
-
End Class
Dejar comentario