Pregunta

Soy nuevo en UserControls, y al mismo tiempo el desarrollo de mi propio control me encontré con un problema mostrando eventos de mi control en la cuadrícula de propiedades en tiempo de diseño. Si tengo algunos eventos en mi control quiero verlos en cuadrícula de la propiedad y si hago doble clic que yo quiero tener un manejador, de la misma forma en que Microsoft hace por sus controles.

¿Fue útil?

Solución

Deben aparecer automáticamente si no me equivoco. Asegúrese de que se ha construido su proyecto sin embargo, o cambios no se propagará a abrir los diseñadores. Y asegurarse de que es un evento public también. (Eventos / protegidas por derecho no deberían aparecer porque no son accesibles.)

Una cosa que puede hacer para hacer más agradable la experiencia de diseño de su usuario es hacer algo como lo siguiente:

    [Description("This event is raised when the user presses the enter key while the control has focus."),
    Category("Key")]
    public event EventHandler EnterPressed;

La "Descripción" poco pone un mensaje en el panel de descripción de la ventana de propiedades. La "categoría" poco pone en una categoría determinada (el valor predeterminado es Misc. Al final).

Por cierto, usted no ha especificado un idioma o el medio ambiente, por lo que lo anterior puede ser necesario modificar si no es C # en Visual Studio 2005 +.

Otros consejos

Yo suelo usar este patrón, para crear un evento personalizado en UserControls:

    #region MyEvent CUSTOM EVENT

    protected virtual void OnMyEvent(MyEventEventArgs e)
    {
        if (MyEvent != null)
            MyEvent(this, e);
    }

    public delegate void MyEventHandler(object sender, MyEventEventArgs e);
    public event MyEventHandler MyEvent;

    public class MyEventEventArgs : EventArgs
    {

    }

    #endregion MyEvent CUSTOM EVENT

Esto tiene la misma convención de nombres de eventos de Microsoft, se puede disparar OnMyEvent desde el interior de su control, tienen EventArgs personalizados, manejar MyEvent de otros controles.

Debe ser el uso Delegado en el control de usuario y elevarlo a la página principal (página aspx) .Si esta manera no funcionó, se debe tener cuidado al UserControlID.It registro tiene por qué difiere con otros UserControl.Each control de usuario necesita una identificación.

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