Vous êtes sur la page 1sur 26

Trabajar con controles

Descripción

„ Crear un controlador de eventos para un control


„ Uso de los controles de los formularios Windows
Forms
„ Uso de los cuadros de diálogo en una aplicación
Windows Forms
„ Agregar controles en tiempo de ejecución
„ Crear menús
„ Validar introducción de datos de los usuarios
Lección: crear un controlador de eventos para un
control

„ Modelo de eventos del .NET Framework


„ ¿Qué es un controlador de eventos?
„ La palabra clave Handles
„ Cómo crear controladores de eventos para eventos de
control
„ Cómo añadir y eliminar controladores de eventos en
tiempo de ejecución
„ Práctica: crear un controlador de eventos para un
control
Modelo de eventos del .NET Framework

Button1
Private Sub
Button1_Click(ByVal Sender As
System.Object, ByVal e As
Invoca el System.EventArgs) Handles
delegado Button1.Click

Delegado
El delegado invoca el
procedimiento asociado
¿Qué es un controlador de eventos?

„ Controladores de eventos
z Métodos ligados a un evento
z Cuando el evento se produce, se ejecuta el código del
controlador de eventos
„ Dos argumentos de eventos con controladores de
eventos
z Un objeto que representa el objeto que produjo el evento
z Un objeto de evento que contiene cualquier información
específica del evento
Private
Private Sub
Sub Button1_Click
Button1_Click (ByVal
(ByVal Sender
Sender As
As
System.Object,
System.Object, ByVal
ByVal ee As
As System.EventArgs)
System.EventArgs)
La palabra clave Handles

„ La palabra clave Handles


z Declara que un procedimiento controla un evento específico

z Permite especificar controladores de eventos en tiempo de


diseño
„ Partes
z ProcedureDeclaration z Eventos
La
La lista
lista de
de argumentos
argumentos debe debe
La
La rutina
rutina puede
puede usar
usar coincidir
coincidir con
con la
la lista
lista
cualquier
cualquier nombre
nombre usual
usual del
del evento
evento concreto
concreto

Public
Public Sub
Sub Age
Age (ByVal
(ByVal Sender
Sender As
As System.Object,
System.Object,
ByVal
ByVal ee As
As System.EventArgs)
System.EventArgs)
Handles
Handles Under21.Click,
Under21.Click, Twenties.Click,
Twenties.Click,
Thirties.Click,
Thirties.Click,
Forties.Click,
Forties.Click, FiftiesPlus.click
FiftiesPlus.click

Palabra
Palabra clave
clave Handles
Handles Lista
Lista de
de eventos
eventos que
que controlará
controlará esta
esta rutina
rutina
Cómo crear controladores de eventos para eventos de controles

„ Utilizar la palabra clave WithEvents para declarar


variables de objetos que se utilizarán con la
instrucción Handles
„ Utilizar la palabra clave Handles al final de la
declaración del procedimiento
Friend
Friend WithEvents
WithEvents Button1
Button1 As
As System.Windows.Forms.Button
System.Windows.Forms.Button

Private
Private Sub
Sub Button1_Click(ByVal
Button1_Click(ByVal sender
sender As
As System.Object,
System.Object,
ByVal
ByVal ee As
As System.EventArgs)
System.EventArgs) Handles
Handles Button1.Click
Button1.Click

MessageBox.Show("MyHandler
MessageBox.Show("MyHandler captured
captured the
the event")
event")

End
End Sub
Sub
Cómo añadir y eliminar controladores de eventos en
tiempo de ejecución

„ Para asociar un evento a un controlador de eventos en


tiempo de ejecución, utilizar la instrucción AddHandler

AddHandler
AddHandler Button3.Click,
Button3.Click, AddressOf
AddressOf Process1
Process1

El
El evento
evento que
que desea
desea La
La rutina
rutina que
que desea
desea utilizar
utilizar
controlar
controlar para
para controlar
controlar el
el evento
evento

„ Para eliminar la asociación de un evento a un


controlador de eventos en tiempo de ejecución, utilizar la
instrucción RemoveHandler
RemoveHandler
RemoveHandler Button3.Click,
Button3.Click, AddressOf
AddressOf
Process1
Process1
Seleccionar un control Windows Forms según la
función
Controles Windows Forms
CommonDialog
Splitter
ColorDialog
StatusBar
FontDialog
TrackBar
OpenDialog
ToolBar
SaveDialog
Scrollbar
PrintDialog
TextBoxBase
PageSetupDialog
TextBox
PrintPreviewDialog
RichTextBox
Control
Progressbar
ButtonBase
PictureBox
Checkbox
ScrollableControl
RadioButton
ContainerControl
TreeView
Form
GroupBox
Panel
ListControls
Data Controls
ComboBox
DataGrid
ListBox
ListView
Cómo utilizar el control StatusBar

Añadir un control StatusBar al formulario

Hacer clic en la propiedad Panels y abrir el Editor de colecciones


StatusBarPanel

Utilizar los botones Agregar y Quitar para añadir y eliminar paneles


del control StatusBar

Configurar las propiedades de los paneles individuales

Hacer clic en Aceptar para cerrar el cuadro de diálogo y crear los


paneles que se han especificado

En la ventana Propiedades, establecer la propiedad ShowPanels


como true
Cómo utilizar el control ListBox

Añadir un control ListBox al


formulario

Añadir elementos a ListBox


utilizando la colección Items

Configurar las propiedades


del control ListBox
Cómo utilizar los controles GroupBox y Panel

Arrastrar un control contenedor (Panel o GroupBox) de la Caja de


herramientas a un formulario

Agregar otros controles al control contenedor, arrastrando cada uno


al panel

Si se dispone de controles existentes que se desean encerrar en el


contenedor, se deben arrastrar a éste

Para mostrar barras de desplazamiento para el control Panel,


establecer su propiedad AutoScrollbar en True

Para mostrar una leyenda en el GroupBox, establecer su propiedad


Text con la leyenda adecuada
Cómo utilizar los controles ToolBar e ImageList

Para utilizar Toolbar en un formulario Windows Forms

Añadir un control Toolbar desde la Caja de herramientas al


formulario

Añadir botones al Toolbar

Añadir los botones al ToolbarButtonCollection

Configurar los botones estableciendo el texto y/o imagen


Seleccionar cuadros de diálogo en Visual Studio .NET
Permite a los usuarios abrir archivos mediante un
OpenFileDialog
OpenFileDialog cuadro de diálogo preconfigurado
Selecciona los archivos a guardar y la ubicación
SaveFileDialog
SaveFileDialog donde deben guardarse
Permite a los usuarios seleccionar un color de la
ColorDialog
ColorDialog paleta y agregar colores a ésta
Expone las fuentes actualmente instaladas en el
FontDialog
FontDialog sistema
Selecciona una impresora y determina otras
PrintDialog
PrintDialog configuraciones relacionadas con la impresión

PageSetupDialog
PageSetupDialog Configura los detalles de la página para su impresión

Muestra el aspecto que tendrá un documento cuando


Muestra el aspecto que tendrá un documento cuando
PrintPreviewDialog
PrintPreviewDialog se imprima
Cómo mostrar cuadros de diálogo en una aplicación

„ Mostrar un cuadro de diálogo Visual Studio .NET


preconfigurado
Private
Private Sub
Sub Button1_Click(ByVal
Button1_Click(ByVal sender
sender as
as
System.Object,ByVal
System.Object,ByVal ee as
as System.EventsArgs)
System.EventsArgs)
OpenFileDialog1.ShowDialog()
OpenFileDialog1.ShowDialog()
End
End Sub
Sub

„ Mostrar un cuadro de diálogo de mensaje


Private
Private Sub
Sub PerformSearch()
PerformSearch()
MessageBox.Show("The
MessageBox.Show("The search
search is
is now
now complete",
complete", __
"My
"My Application",
Application", MessageBoxButtons.OKCancel,
MessageBoxButtons.OKCancel, __
MessageBoxIcon.Asterisk)
MessageBoxIcon.Asterisk)
End
End Sub
Sub
Propiedad DialogResult

Propiedad DialogResult

Utilizar el valor devuelto por esta propiedad para determinar qué


acción ha realizado el usuario

Ejemplo
Ejemplo

El valor DialogResult.Cancel indica que el usuario ha hecho clic


en el botón Cancel

La propiedad DialogResult puede establecerse en tiempo de


diseño o en tiempo de ejecución
Cómo utilizar la entrada de los cuadros de diálogo

Recuperar y utilizar resultados de cuadros de diálogo

En la ventana de código, ir al controlador de eventos o el método


para el que desea establecer la propiedad DialogResult

Añadir código para recuperar el valor DialogResult

Dim
Dim userResponse
userResponse As
As DialogResult
DialogResult ==
OpenFileDialog1.ShowDialog()
OpenFileDialog1.ShowDialog()
If
If userResponse
userResponse == DialogResult.OK
DialogResult.OK Then
Then
filePath
filePath == OpenFileDialog1.FileName.ToString
OpenFileDialog1.FileName.ToString
MessageBox.Show("You
MessageBox.Show("You successfully
successfully opened:
opened: '"
'" &&
filePath
filePath && "'",
"'", "Success",
"Success", MessageBoxButtons.OK,
MessageBoxButtons.OK,
MessageBoxIcon.Information,
MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1)
MessageBoxDefaultButton.Button1)
Colección de controles

„ Colección de controles
z Representa un colección de objetos de control

z Utilizar los métodos Add, Remove y RemoveAt para


agregar y eliminar controles de la colección
Form1.Controls.Add(textbox1)
Form1.Controls.Add(textbox1)

Form1.Controls.Remove(textbox1)
Form1.Controls.Remove(textbox1)

z Utilizar el método Contains para determinar si un


control forma parte o no de una colección
Form1.Controls.Contains(textbox1)
Form1.Controls.Contains(textbox1)
Cómo agregar controles en tiempo de ejecución
Para agregar controles en tiempo de ejecución

Crear el control que se agregará al contenedor


Dim
Dim signatureCheckBox
signatureCheckBox As
As New
New CheckBox()
CheckBox()
'' set
set properties
properties
signatureCheckBox.Left
signatureCheckBox.Left == 24
24
signatureCheckBox.Top
signatureCheckBox.Top == 80
80
signatureCheckBox.Text
signatureCheckBox.Text == "Signature
"Signature required"
required"

Añadir el control al contenedor utilizando el método Add de la


propiedad Controls
'' add
add the
the new
new control
control to
to the
the collection
collection
GroupBox1.Controls.Add(signatureCheckBox)
GroupBox1.Controls.Add(signatureCheckBox)
Cómo agregar un menú contextual a un formulario
Para añadir controles en tiempo de ejecución

En la Caja de herramientas, hacer doble clic en el control


ContextMenu
Asociar el menú contextual a un formulario o a un control
estableciendo la propiedad ContextMenu de ese objeto

Para agregar un menú contextual programáticamente


Public
Public Sub
Sub AddContextMenu()
AddContextMenu()
Dim
Dim contxmenu
contxmenu as
as New
New ContextMenu()
ContextMenu()
Me.ContextMenu()
Me.ContextMenu() == contxmenu
contxmenu
……
End
End Sub
Sub
Cómo agregar elementos de menú en tiempo de ejecución
Agregar elementos de menú a un menú contextual en tiempo de ejecución

Dentro del método, crear objetos MenuItem para añadirlos al menú


contextual de la colección Object
Dim
Dim menuItemNew
menuItemNew as as New
New MenuItem()
MenuItem()

Dentro del método, establecer la propiedad Text para cada


elemento de menú
MenuItemNew.Text
MenuItemNew.Text == "New" "New"

Dentro del método, añadir elementos de menú a la colección


MenuItems del objeto ContextMenu
contxMenu.MenuItems.Add(menuItemNew)
contxMenu.MenuItems.Add(menuItemNew)
Cómo crear controladores de menú para elementos
de menú
Para agregar funcionalidades a los elementos de menú

Crear un controlador de eventos para el evento MenuItem.Click


Private
Private Sub
Sub MenuItemNew_Click
MenuItemNew_Click (ByVal
(ByVal sender
sender as
as
System.Object,ByVal
System.Object,ByVal ee as
as System.EventsArgs)
System.EventsArgs)
End
End Sub
Sub

Escribir el código para controlar el evento


Private
Private Sub
Sub MenuItemNew_Click
MenuItemNew_Click (ByVal
(ByVal sender
sender as
as
System.Object,ByVal
System.Object,ByVal ee as
as System.EventsArgs)
System.EventsArgs)
MessageBox.Show("You
MessageBox.Show("You clicked
clicked the
the New
New
Option")
Option")
End
End Sub
Sub
Cómo utilizar las propiedades del menú
Cómo validar controles utilizando el evento
Validating

„ Utilizar el evento Validating de un control para validar


la entrada de los usuarios

„ El evento Validated se dispara cuando la validación de


los controles finaliza la ejecución de eventos de
validación
„ La propiedad CausesValidation determina si el control
anterior participará en la validación. Si está establecida
en False para un control, el control anterior no dispara
el evento de validación
Control ErrorProvider

„ ErrorProvider
z Muestra errores cuando se valida la entrada del usuario
en un formulario
z Muestra errores en un dataset
„ Principales propiedades

DataSource
DataSource ContainerControl
ContainerControl Icon
Icon

„ Método clave
SetError
SetError
Cómo utilizar el control ErrorProvider

Para utilizar el control ErrorProvider

Añadir controles al formulario

Añadir el control ErrorProvider

Añadir código al evento Validating del primer control

Vous aimerez peut-être aussi