Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: noviembre 2007
Si ya dispone de un controlador de eventos, puede enlazarle varios eventos de control. Estos eventos múltiples pueden ser del mismo control, o un evento puede ser de varios controles distintos, siempre y cuando todos los eventos tengan la misma firma de método. Por ejemplo, quizás desee enlazar los eventos Click de varios controles de servidor Button de una página ASP.NET a un único controlador de eventos. Cuando se llama al controlador, se puede determinar el control que causó el evento.
Para conectar varios eventos a un único controlador de eventos
En el marcado de página, agregue el mismo nombre de evento y el mismo nombre de método a cada control, como en el ejemplo de código siguiente.
<asp:Button ID="Button1" onclick="Button_Click" Text="Button1" /> <br /> <asp:Button ID="Button2" onclick="Button_Click" Text="Button2" />
Nota:Debe asegurarse de que el método tiene la firma correcta para el evento que está controlando.
Para conectar varios eventos a un único controlador de eventos en Visual Basic
Modifique la cláusula Handles de un método agregando los nombres de los eventos que el método debe controlar. Separe los nombres de los eventos mediante comas.
En el ejemplo de código siguiente se muestra cómo puede enlazar el método Button_Click a eventos provocados por tres controles Button.
Sub Button_Click (ByVal sender as System.Object, _ ByVal e as System.EventArgs) _ Handles Button1.Click, Button2.Click, Button3.Click
Nota:Si utiliza una cláusula Handles para enlazar un evento y un método, no incluya también el atributo de evento en el marcado. Por ejemplo, no incluya un atributo onClick en el marcado para un control Button. Si lo hace, se llamará dos veces al método.
Para determinar el control que provocó el evento
En el controlador de eventos, declare una variable cuyo tipo coincida con los controles que dieron lugar al evento.
Asigne el primer argumento del controlador de eventos a la variable, convirtiéndolo al tipo correspondiente.
En el siguiente ejemplo de código se muestra el controlador del evento Click de un control Button al que llaman varios botones diferentes. El controlador muestra la propiedad ID del botón que provocó el evento.
Private Sub Button_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click, Button2.Click, Button3.Click Dim b As Button = CType(sender, Button) Label1.Text = b.ID End Subprivate void Button_Click(object sender, System.EventArgs e) { Button b = (Button) sender; Label1.Text = b.ID; }