Mi colección

Anuncio
Mi colección
Crear controladores
de eventos en
formularios Windows
Forms
Crear controladores de eventos en
formularios Windows Forms
Visual Studio
2010
Un controlador de eventos es un procedimiento del código que determina qué acciones se ejecutan cuando se produce
un evento, como cuando un usuario hace clic en un botón o una cola de mensajes recibe otro mensaje. Cuando se
produce un evento, se ejecuta el controlador o controladores de eventos que reciben dicho evento. Los eventos pueden
asignarse a múltiples controladores, y los métodos que controlan determinados eventos pueden modificarse de manera
dinámica. También puede utilizar el Diseñador de Windows Forms para crear los controladores de eventos. Para obtener
más información, vea Diseñador de Windows Forms y Diseñador de Windows Forms y Diseñador de Windows Forms y
Diseñador de Windows Forms y Diseñador de Windows Forms..
En esta sección
Información general sobre eventos (Formularios Windows Forms)
Explica el modelo de eventos y la función de los delegados.
Información general sobre controladores de eventos (Formularios Windows Forms)
Describe cómo controlar eventos.
Cómo: Crear controladores de eventos en tiempo de ejecución para formularios Windows Forms
Proporciona instrucciones para responder dinámicamente a eventos del sistema o del usuario.
Cómo: Conectar varios eventos con un único controlador de eventos en formularios Windows Forms
Proporciona instrucciones para asignar la misma funcionalidad a múltiples controles por medio de eventos.
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
Orden de eventos en los formularios Windows Forms
Describe el orden en que se producen los eventos en los controles de formularios Windows Forms.
Topic
Location
Cómo: Crear controladores de eventos predeterminados en el Diseñador
de Windows Forms
Programación con formularios
Windows Forms
Cómo: Crear controladores de eventos con el diseñador
Programación con formularios
Windows Forms
Cómo: Crear controladores de eventos predeterminados en el Diseñador
de Windows Forms
Programación con formularios
Windows Forms
Cómo: Crear controladores de eventos con el diseñador
Programación con formularios
Windows Forms
Cómo: Crear controladores de eventos predeterminados en el Diseñador
de Windows Forms
Programación con formularios
Windows Forms
Cómo: Crear controladores de eventos con el diseñador
Programación con formularios
Windows Forms
Cómo: Crear controladores de eventos predeterminados en el Diseñador
de Windows Forms
dv_ManCli
Cómo: Crear controladores de eventos con el diseñador
dv_ManCli
Cómo: Crear controladores de eventos predeterminados en el Diseñador
de Windows Forms
dv_ManCli
Cómo: Crear controladores de eventos con el diseñador
dv_ManCli
Secciones relacionadas
Controlar y provocar eventos
Proporciona vínculos a temas sobre el control y provocación de eventos en .NET Framework.
Solucionar problemas de controladores de eventos heredados en Visual Basic
Enumera problemas comunes que aparecen con controladores de eventos en componentes heredados.
Eventos y delegados
Proporciona información general sobre el modelo de eventos y describe los delegados de .NET Framework.
Topic
Location
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
Ejemplo de eventos
Aplicaciones de ejemplo de C#
Ejemplo de eventos
Aplicaciones de ejemplo de C#
© 2016 Microsoft
Información general sobre eventos
(Formularios Windows Forms)
Visual Studio
2010
Un evento es una acción a la que se puede responder o que se puede "controlar" mediante código. Los eventos se
pueden generar mediante una acción del usuario, por ejemplo, haciendo clic con el mouse o presionando una tecla,
mediante código del programa o mediante el sistema.
Las aplicaciones controladas por eventos ejecutan código en respuesta a los eventos. Cada formulario y cada control
exponen un conjunto de eventos predefinido que se puede utilizar al programar. Si se produce uno de estos eventos y
hay código en el controlador de eventos asociado, se invocará este código.
Los tipos de eventos que produce un objeto varían, pero muchos tipos son comunes a la mayoría de los controles. Por
ejemplo, la mayoría de los objetos controlará un evento Click. Si un usuario hace clic en un formulario, se ejecutará el
código del controlador de eventos Click del formulario.
Nota
Muchos eventos se producen junto con otros eventos. Por ejemplo, mientras se produce el evento DoubleClick se
producen también los eventos MouseDown, MouseUp y Click.
Para obtener información sobre cómo provocar y utilizar un evento, vea Cómo: Provocar y utilizar eventos. Para obtener
un ejemplo de cómo conectar los métodos y controladores de eventos, vea Cómo: Conectar métodos controlador de
eventos a eventos.
Los delegados y su función
Los delegados son clases que suelen utilizarse dentro de .NET Framework para compilar mecanismos de control de
eventos.
Equivalen aproximadamente a los punteros a función, que se suelen utilizar en Visual C++ y en otros
lenguajes orientados a objetos. No obstante, a diferencia de los punteros a función, los delegados están orientados a
objetos, proporcionan seguridad de tipos y son seguros. Además, mientras que un puntero de función contiene sólo
una referencia a una función concreta, un delegado consta de una referencia a un objeto y hace referencia a uno o
más métodos dentro del objeto.
Este modelo de eventos utiliza delegados para enlazar los eventos a los métodos utilizados para controlarlos. El
delegado permite que se registren otras clases para la notificación de eventos mediante la especificación de un
método controlador. Cuando se produce el evento, el delegado llama al método enlazado. Para obtener más
información sobre cómo definir los delegados, vea Eventos y delegados.
Los delegados pueden enlazarse a un solo método o a múltiples métodos, lo que se conoce como multidifusión.
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
Cuando se crea un delegado para un evento, el programador o el Diseñador de Windows Forms crea un evento de
multidifusión. Una rara excepción puede ser un evento cuyo resultado sea un procedimiento específico (tal como la
presentación de un cuadro de diálogo) que no se repita lógicamente varias veces por cada evento. Para obtener
información sobre cómo crear un delegado de multidifusión, vea Cómo: Combinar delegados (delegados de
multidifusión) (Guía de programación de C#).
Un delegado de multidifusión mantiene una lista de llamadas de los métodos a los que está enlazado. El delegado de
multidifusión admite un método Combine para agregar un método a la lista de llamadas y un método Remove para
quitarlo.
Cuando la aplicación registra un evento, el control produce un evento mediante una llamada al delegado del evento.
El delegado, a su vez, llama al método enlazado. En el caso más habitual (un delegado de multidifusión), el delegado
llama por orden a cada uno de los métodos enlazados de la lista de llamadas, lo que proporciona una notificación de
uno a muchos. Esta estrategia significa que el control no necesita mantener una lista de objetos de destino para la
notificación del evento: el delegado controla todo el proceso de registro y notificación.
Los delegados permiten también enlazar múltiples eventos al mismo método, lo que permite la notificación de
muchos a uno. Por ejemplo, tanto un evento clic de botón como un evento clic de comando de menú pueden
invocar al mismo delegado que, a continuación, llama a un solo método para controlar de la misma manera estos
eventos separados.
El mecanismo de enlace que se utiliza con los delegados es dinámico: un delegado puede enlazarse en tiempo de
ejecución a cualquier método cuya firma coincida con la del controlador de eventos. Esta función permite configurar
o cambiar el método de enlace dependiendo de una condición y asociar dinámicamente un controlador de eventos a
un control.
Vea también
Conceptos
Información general sobre controladores de eventos (Formularios Windows Forms)
Otros recursos
Crear controladores de eventos en formularios Windows Forms
© 2016 Microsoft
Información general sobre controladores
de eventos (Formularios Windows Forms)
Visual Studio
2010
Un controlador de eventos es un método enlazado a un evento. Cuando se produce el evento, se ejecuta el código del
controlador de eventos. Cada controlador de eventos proporciona dos parámetros que permiten controlar
correctamente el evento. En el siguiente ejemplo se muestra un controlador de eventos para el evento Click del control
Button.
C#
private void button1_Click(object sender, System.EventArgs e)
{
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
}
J#
private void button1_Click(System.Object sender, System.EventArgs e)
{
}
C++
private:
void button1_Click(System::Object ^ sender,
System::EventArgs ^ e)
{
}
El primer parámetro, sender, proporciona una referencia al objeto que provocó el evento. El segundo parámetro, e en
el ejemplo anterior, pasa un objeto específico del evento que se está controlando. Al hacer referencia a las propiedades
del objeto (y, a veces, a sus métodos), puede obtener información tal como la posición del mouse para los eventos del
mouse o los datos que se están transfiriendo en los eventos de arrastrar y colocar.
Habitualmente, cada evento produce un controlador de eventos con un tipo de objeto de evento diferente para el
segundo parámetro. Algunos controladores de evento, tales como los de los eventos MouseDown y MouseUp, tienen el
mismo tipo de objeto para el segundo parámetro. Para estos tipos de eventos, se puede utilizar el mismo controlador
de eventos para controlar ambos eventos.
También puede utilizar el mismo controlador de eventos para controlar el mismo evento de diferentes controles. Por
ejemplo, si tiene un grupo de controles RadioButton en un formulario, puede crear un único controlador de eventos
para el evento Click y hacer que el evento Click de cada control se enlace a ese controlador de eventos único. Para
obtener más información, vea Cómo: Conectar varios eventos con un único controlador de eventos en formularios
Windows Forms.
Vea también
Conceptos
Información general sobre eventos (Formularios Windows Forms)
Otros recursos
Crear controladores de eventos en formularios Windows Forms
© 2016 Microsoft
Cómo: Crear controladores de eventos en
tiempo de ejecución para formularios
Windows Forms
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
Visual Studio
2010
Además de crear eventos con el Diseñador de Windows Forms, también puede crear un controlador de eventos en
tiempo de ejecución. Esta acción le permite conectar controladores de eventos basándose en las condiciones del código
en tiempo de ejecución en lugar de conectarlos cuando el programa se inicia.
Para crear un controlador de eventos en tiempo de ejecución
1. Abra en el Editor de código el formulario al que desea agregar un controlador de eventos.
2. Agregue un método al formulario con la firma de método del evento que desee controlar.
Por ejemplo, si desea controlar el evento Click de un control Button, deberá crear un método como el siguiente:
VB
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
' Add event handler code here.
End Sub
C#
private void button1_Click(object sender, System.EventArgs e)
{
// Add event handler code here.
}
J#
private void button1_Click(System.Object sender, System.EventArgs e)
{
// Add event handler code here.
}
C++
private:
void button1_Click(System::Object ^ sender,
System::EventArgs ^ e)
{
// Add event handler code here.
}
3. Agregue al controlador de eventos el código adecuado para la aplicación.
4. Determine el formulario o control para el que desea crear un controlador de eventos.
5. En un método de la clase del formulario, agregue código que especifique el controlador de eventos que va a
controlar el evento. Por ejemplo, en el código siguiente se especifica que el controlador de eventos
button1_Click controla el evento Click de un control Button:
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
VB
AddHandler Button1.Click, AddressOf Button1_Click
C#
button1.Click += new EventHandler(button1_Click);
J#
button1.add_Click(new EventHandler(button1_Click));
C++
button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
El método AddHandler mostrado anteriormente en el código de Visual Basic establece un controlador de evento
clic para el botón.
Vea también
Tareas
Solucionar problemas de controladores de eventos heredados en Visual Basic
Conceptos
Información general sobre controladores de eventos (Formularios Windows Forms)
Otros recursos
Crear controladores de eventos en formularios Windows Forms
© 2016 Microsoft
Cómo: Conectar varios eventos con un
único controlador de eventos en
formularios Windows Forms
Visual Studio
2010
En el diseño de la aplicación, quizá encuentre necesario disponer de un único controlador de eventos que se utilice para
múltiples eventos o bien que múltiples eventos realicen el mismo procedimiento. Por ejemplo, se suele ahorrar mucho
tiempo si un comando de menú activa el mismo evento que un botón del formulario, en el caso de que ambos ofrezcan
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
la misma funcionalidad. Para ello se puede utilizar la vista Eventos de la ventana Propiedades de C#, o la palabra clave
Handles y las listas desplegables Nombre de clase y Nombre de método en el Editor de código de Visual Basic.
Para conectar varios eventos a un único controlador de eventos en Visual Basic
1. Haga clic con el botón secundario del mouse en el formulario y elija Ver código.
2. En el cuadro de diálogo Nombre de clase, seleccione uno de los controles al que desea agregar un controlador
de eventos.
3. En el cuadro de diálogo Nombre de método, seleccione uno de los eventos al que desea agregar un
controlador de eventos.
4. El Editor de código inserta el controlador de eventos apropiado y sitúa el punto de inserción dentro del método.
En el siguiente ejemplo, se trata del evento Click para el control Button.
VB
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
' Add event-handler code here.
End Sub
5. Agregue los otros eventos que desea controlar en la cláusula Handles .
VB
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click, Button2.Click
' Add event-handler code here.
End Sub
6. Agregue el código apropiado al controlador de eventos.
Para conectar varios eventos a un único controlador de eventos en C#
1. Seleccione el control al que desea conectar un controlador de eventos.
2. En la ventana Propiedades, haga clic en el botón Eventos (
).
3. Haga clic en el nombre del evento que desea controlar.
4. En la sección de valor, junto al nombre del evento, haga clic en el botón de lista desplegable para mostrar una
lista de controladores de eventos existentes que coincidan con la firma del método del evento que desea
controlar.
5. Seleccione en la lista el controlador de eventos adecuado.
Se agregará código al formulario para enlazar el evento al controlador de eventos existente.
Vea también
Conceptos
Información general sobre controladores de eventos (Formularios Windows Forms)
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
Otros recursos
Crear controladores de eventos en formularios Windows Forms
© 2016 Microsoft
Orden de eventos en los formularios
Windows Forms
Visual Studio
2010
El orden en que se producen los eventos en las aplicaciones de Windows Forms resulta especialmente interesante para
los desarrolladores preocupados por controlar uno a uno cada uno de estos eventos. Cuando una situación exige un
control minucioso de los eventos, como cuando se vuelven a dibujar partes del formulario, es necesario ser consciente
del orden exacto en el que se desencadenarán los eventos en tiempo de ejecución. En este tema se proporcionan
algunos detalles sobre el orden de los eventos durante varias fases importantes del uso de las aplicaciones y los
controles. Para obtener detalles concretos sobre el orden de eventos de entrada del mouse, vea Eventos del mouse
(ratón) en formularios Windows Forms. Para obtener información general sobre los eventos de los formularios Windows
Forms, vea Información general sobre eventos (Formularios Windows Forms). Para obtener información detallada sobre
la composición de los controladores de eventos, vea Información general sobre controladores de eventos (Formularios
Windows Forms).
Eventos de inicio y cierre de la aplicación
Las clases Form y Control exponen un conjunto de eventos relacionados con el inicio y cierre de la aplicación. Cuando
una aplicación de Windows Forms se inicia, los eventos de inicio del formulario principal se provocan en el orden
siguiente:
Control.HandleCreated
Control.BindingContextChanged
Form.Load
Control.VisibleChanged
Form.Activated
Form.Shown
Cuando una aplicación se cierra, los eventos de cierre del formulario principal se producen en el orden siguiente:
Form.Closing
Form.FormClosing
Form.Closed
Form.FormClosed
Form.Deactivate
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
El evento ApplicationExit de la clase Application se provoca después de los eventos de cierre del formulario principal.
Nota
Visual Basic 2005 incluye eventos de aplicación adicionales, como WindowsFormsApplicationBase.Startup y
WindowsFormsApplicationBase.Shutdown. Para obtener más información, vea Cómo: Controlar eventos de
aplicaciones (Visual Basic) y Cómo: Controlar eventos de aplicaciones (Visual Basic) y Cómo: Controlar eventos de
aplicaciones (Visual Basic).
Eventos Focus y Validation
Al cambiar el foco mediante el teclado (TAB, MAYÚS+TAB, etc.), llamando a los métodos Select o SelectNextControl; o
bien, estableciendo el valor de la propiedad ActiveControl en el formulario actual, los eventos de foco de la clase
Control se producen en el siguiente orden:
Enter
GotFocus
Leave
Validating
Validated
LostFocus
Cuando cambia el foco utilizando el mouse o llamando el método Focus, los eventos del foco de la clase Control
tienen lugar en el siguiente orden:
Enter
GotFocus
LostFocus
Leave
Validating
Validated
Vea también
Otros recursos
Crear controladores de eventos en formularios Windows Forms
© 2016 Microsoft
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
Cómo: Crear controladores de eventos con
el diseñador
Visual Studio
2010
En casi todas las aplicaciones, es esencial responder a eventos de usuario o del sistema. Se pueden crear controladores
de eventos mediante la ventana Propiedades, tal como se trata en el procedimiento siguiente. Para obtener más
información sobre cómo crear los controladores de eventos predeterminados, vea Cómo: Crear controladores de
eventos predeterminados en el Diseñador de Windows Forms.
Nota
Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de
los valores de configuración o de edición activos. Para cambiar la configuración, elija la opción Importar y exportar
configuraciones del menú Herramientas. Para obtener más información, vea Trabajar con valores de
configuración.
Para crear un controlador de eventos en el Diseñador de Windows Forms
1. Haga clic en el formulario o control para el que desea crear un controlador de eventos.
2. En la ventana Propiedades, haga clic en el botón Eventos (
).
3. En la lista de eventos disponibles, haga clic en el evento para el que desea crear un controlador de eventos.
4. En el cuadro que se encuentra a la derecha del nombre de evento, escriba el nombre del controlador y presione
ENTRAR.
Nota
Asigne al controlador de eventos un nombre relacionado con la funcionalidad del evento; por ejemplo, para el
evento Click puede escribir StartProcess como controlador de eventos.
Aparecerá el Editor de código con el código del formulario y se generará en el código un método de control de
eventos similar al siguiente:
VB
Private Sub StartProcess(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles Button1.Click
' Add event handler code here.
End Sub
C#
private void StartProcess(object sender, System.EventArgs e)
{
// Add event handler code here.
}
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
J#
private void StartProcess(System.Object sender, System.EventArgs e)
{
// Add Event Handler Code Here
}
C++
private:
void StartProcess(System::Object ^ sender,
System::EventArgs ^ e)
{
// Add event handler code here.
}
5. Agregue el código correspondiente al controlador de eventos.
Vea también
Tareas
Cómo: Crear controladores de eventos predeterminados en el Diseñador de Windows Forms
Conceptos
Información general sobre controladores de eventos (Formularios Windows Forms)
Otros recursos
Crear controladores de eventos en formularios Windows Forms
© 2016 Microsoft
Cómo: Crear controladores de eventos
predeterminados en el Diseñador de
Windows Forms
Visual Studio
2010
Dentro del Diseñador de Windows Forms, al hacer doble clic en la superficie de diseño (ya sea en el formulario o en un
control) se crea un controlador de eventos para la acción predeterminada del elemento.
Nota
Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de
los valores de configuración o de edición activos. Para cambiar la configuración, elija la opción Importar y exportar
configuraciones del menú Herramientas. Para obtener más información, vea Trabajar con valores de
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
configuración.
Para crear el controlador de eventos para una acción predeterminada
1. Haga doble clic en el elemento del Diseñador de Windows Forms para el que desea crear un controlador.
Se abrirá el Editor de código y el puntero del mouse se situará dentro del controlador de eventos predeterminado
recién creado.
2. Agregue el código correspondiente al controlador de eventos.
Al finalizar, el código podría tener el siguiente aspecto:
VB
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
Button1.Click
'Add event-handler code here
End Sub
C#
private void button1_Click(object sender, System.EventArgs e)
{
// Add event-handler code here.
}
C++
private:
void button1_Click(System::Object ^ sender,
System::EventArgs ^ e)
{
// Add event-handler code here.
}
El código anterior es el controlador de eventos predeterminado de un control Button.
Vea también
Tareas
Cómo: Crear controladores de eventos con el diseñador
Cómo: Crear controladores de eventos en tiempo de ejecución para formularios Windows Forms
Solucionar problemas de controladores de eventos heredados en Visual Basic
Conceptos
Información general sobre controladores de eventos (Formularios Windows Forms)
Otros recursos
Crear controladores de eventos en formularios Windows Forms
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Mi colección
© 2016 Microsoft
http://pabprod.blob.core.windows.net/books/f6201e18-25d3-43ac-ad1e-04db424ed76e.html[06/02/2016 12:34:41 p. m.]
Descargar