Pregunta

Describir

OK, busqué esto en Google y ya esperaba una gran cantidad ¡¡NO!! Pero pensé que debería preguntar ya que sé que a veces puede haber alguna pequeña joya de conocimiento acechando en la cabeza de las personas ^_^

Estoy trabajando en algunos ejercicios de un libro de estudio, y este ejercicio en particular es Controles de usuario.He improvisado un control y me gustaría configurar el DefaultEvent para él (habiendo hecho esto para controles anteriores), de modo que cuando haga doble clic en él, el evento predeterminado creado sea el que yo especifique.

NOTA: Este es un control de usuario estándar (.ascx), NO un control renderizado personalizado.

Código actual

Aquí está la definición de clase y evento:

[System.ComponentModel.DefaultEvent("OKClicked")]
public partial class AddressBox : System.Web.UI.UserControl
{
    public event EventHandler OKClicked;

Resultado actual

Ahora, cuando hago doble clic en el control cuando está en una página ASPX, se crea lo siguiente:

    protected void AddressBox1_Load(object sender, EventArgs e)
    {

    }

¡No es exactamente lo que esperaba!Entonces, mi pregunta:

¿Es posible definir un DefaultEvent para un UserControl?¿Es un truco?Si [no] es compatible, ¿hay alguna razón?


Nota al margen:¿Cómo ponemos guiones bajos en el código?¿Parece que no puedo poner y escapar del carbón?

¿Fue útil?

Solución

Aquí hay un posible Responder, sin probar (como lo hizo Martin).

En el reflector, verá que DefaultEventAttribute se puede heredar.En el reflector, verá que la clase UserControl tiene su evento predeterminado establecido en el evento Load.

Entonces, la posible razón es que, aunque esté decorando su control de usuario con el evento predeterminado de OKClick, VS podría seguir pensando que el evento predeterminado es cargar, ya que se hereda de UserControl cuyo evento predeterminado es Cargar.

Sólo una suposición de alto nivel sobre lo que podría estar sucediendo.

Otros consejos

Bien, revisé esto, Heredando de WebControl en lugar de UserControl.Todo funcionó bien.

Parece Darren Kopp ¡Se lleva la corona por este!¡Gracias por el aporte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top