34 - Ventana de eventos - Windows Forms


La ventana de eventos coincide con la ventana de propiedades. Para activar la lista de eventos disponibles para un objeto debemos presionar el ícono:

Ventana de eventos Windows Forms

Podemos observar la lista de eventos que puede reaccionar el objeto seleccionado en ese momento. Por ejemplo si tenemos seleccionado un objeto de la clase Button el evento más común que deberemos implementar es el Click (este evento se dispara cuando en tiempo de ejecución del programa se presiona el botón)

Para disponer el código para dicho evento debemos hacer doble clic sobre dicho evento (esto hace que se active la ventana del editor y genere automáticamente el método asociado a dicho evento):

Ventana de eventos Windows Forms

Problema:

Confeccionar un programa que al presionar un botón se muestre en un objeto de la clase Label el string "Hola Mundo".

Programa:

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Label1.Text = "Hola Mundo"
    End Sub
End Class

Hay que tener en cuenta que la clase anterior es parcial (el archivo Form1.Designer.vb contiene la definición de los dos objetos y la inicialización de sus propiedades y evento, recordemos que este archivo no hay que modificar):

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
    Inherits System.Windows.Forms.Form

    'Form reemplaza a Dispose para limpiar la lista de componentes.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Requerido por el Diseñador de Windows Forms
    Private components As System.ComponentModel.IContainer

    'NOTA: el Diseñador de Windows Forms necesita el siguiente procedimiento
    'Se puede modificar usando el Diseñador de Windows Forms.  
    'No lo modifique con el editor de código.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.Label1 = New System.Windows.Forms.Label()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.SuspendLayout()
        '
        'Label1
        '
        Me.Label1.AutoSize = True
        Me.Label1.Location = New System.Drawing.Point(38, 92)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(39, 13)
        Me.Label1.TabIndex = 0
        Me.Label1.Text = "Label1"
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(41, 144)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(75, 23)
        Me.Button1.TabIndex = 1
        Me.Button1.Text = "Button1"
        Me.Button1.UseVisualStyleBackColor = True
        '
        'Form1
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(331, 373)
        Me.Controls.Add(Me.Button1)
        Me.Controls.Add(Me.Label1)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)
        Me.PerformLayout()

    End Sub

    Friend WithEvents Label1 As Label
    Friend WithEvents Button1 As Button
End Class

Al ejecutar el programa si presionamos el botón vemos como cambia el contenido de la Label (esto debido a que en el evento Click del botón cambiamos el valor de la propiedad Text del objeto de la clase Label):

Ventana de eventos Windows Forms

Problema propuesto

  1. Disponer 7 objetos de la clase Button con los días de la semana. Fijar en los atributos Text de cada botón los días de la semana. Al presionar un botón mostrar en un objeto de la clase Label el día seleccionado.
Solución
Ventana de eventos Windows Forms
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Label1.Text = "Lunes" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Label1.Text = "Martes" End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Label1.Text = "Miércoles" End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Label1.Text = "Jueves" End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click Label1.Text = "Viernes" End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click Label1.Text = "Sábado" End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click Label1.Text = "Domingo" End Sub End Class

Retornar