2009-06-03 22 views

Respuesta

36

Puede surgir un nuevo evento y pasar directamente a través de las suscripciones al control, si se quiere:

public class UserControl1 : UserControl 
{ 
    // private Button saveButton; 

    public event EventHandler SaveButtonClick 
    { 
     add { saveButton.Click += value; } 
     remove { saveButton.Click -= value; } 
    } 
} 
+0

¡Maravilloso! Hice algo similar al agregar explícitamente un controlador de eventos, ya que expuse el control infantil públicamente a través del control de usuario. ¡Tu sugerencia es la mejor manera de hacerlo! ¡Gracias! –

+11

A pesar de su elegancia, esta solución tiene un inconveniente importante: el argumento 'remitente' pasado al controlador será el Botón, no el UserControl ... Esto hace que sea imposible utilizar el mismo controlador para varias instancias del control –

+0

¿Hay cualquier otra cosa para que esto funcione? de alguna manera, el manejador de eventos agregado declarativamente no funciona – Nap

1

Exponga todo el TextBox como una propiedad pública en control de usuario y suscríbase a sus eventos de la forma que desee.
Ejemplo:

class myUserControl: UserControl { 
private TextBox _myText; 
public TextBox MyText { get {return _myText; } } 

}

Después de hacer esto se puede inscribir en cualquiera de sus eventos, así:

theUserControl.MyText.WhatEverEvent += ... 

Espero que esto ayude!

+0

gracias, yo había hecho algo similar a partir de ahora. Estaba buscando una solución elegante que se proporcionó anteriormente. Gracias por su ayuda. + 1 –

Cuestiones relacionadas