in

dotNet Umbria [DNU]

Il primo User Group in Umbria sul mondo .Net
Latest post 06-18-2008 9:03 AM by Andrea Cruciani. 5 replies.
Page 1 of 1 (6 items)
Sort Posts: Previous Next
  • 06-17-2008 12:11 PM

    UserControl con custom events

    Ciao a tutti,

    sto sviluppando un semplice controllo che contiene una textbox che deve avere dei comportamenti "custom".

    Ad un certo punto mi sono accorto che (ovviamente) in fase di design-time il mio controllo non espone, nel tab degli eventi,

    il TextChanged. Come faccio ad agganciare l'evento della textbox del mio usercontrol in modo che sia visibile nel tab degli events in design-time?

    Ho già creato delle proprietà custom nel property-tab utilizzando questa sintassi:

       [Browsable(true)]
            [Description("Abilita o disabilita il controllo"), Category("Behavior"), DefaultValue(false)]
            [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
            public bool ReadOnly
            {...

    e pensavo che per gli eventi fosse qualcosa di simile, purtroppo non ho trovato esempi in rete.

    Grazie

    Daniele

     

  • 06-17-2008 12:26 PM In reply to

    Re: UserControl con custom events

    Ciao Daniele,
    purtroppo per gli ASCX non è possibile in quanto in VS non 'cè un "pieno suupporto" visuale per gli user control (o almeno non lo era fino a VS2005; non so se la cosa è cambiata con il 2008). L'unico modo quindi per utilizzare i tuoi eventi custom è scrivere il codice necessario nella pagina che contiene il tuo controllo utilizzando la sintassi "classica":

    nomeControllo.Evento += ecc..

    Ciao

    Fabrizio Bernabei   
    www.kitendo.com
    www.innovactive.it

    Filed under:
  • 06-17-2008 12:34 PM In reply to

    Re: UserControl con custom events

    Scusa Fabrizio non avevo specificato che la mia non è una web application ma una windows application!... non so se faccia differenza...

     

  • 06-17-2008 12:41 PM In reply to

    Re: UserControl con custom events

    Oppss... non avevo dedotto :)
    Comunque credo che valga la stessa cosa, ma magari provo a dare un'occhiata e se trovo qualcosa aggiorno il post.

    Fabrizio Bernabei   
    www.kitendo.com
    www.innovactive.it

    Filed under:
  • 06-17-2008 2:26 PM In reply to

    Re: UserControl con custom events

    Sembra che la soluzione sia la seguente... ma se avete altre idee...

     

       [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)]
            public new event EventHandler TextChanged;

            private void txtValue_TextChanged(object sender, EventArgs e)
            {
                this.TextChanged(this, e);
            }

     

  • 06-18-2008 9:03 AM In reply to

    Re: UserControl con custom events

     Ciao,

    tipicamente faccio così anche io (se non sbaglio la visibilità a design time è true di default quindi si può fare a meno degli attributi).

    Molte volte conviene scrivere un delegato custom per ritornare dei valori ad hoc o, ancora meglio dalla 2.0, riscrivere solo un EventArgs (una classe che derivi da EventArgs) ed implementare il delegato con la sintassi

    EventHandler<CustomEvArgs>

    Potrebbe forse interessante l'attributo DefaultEventAttribute, và specificato a livello di classe (sopra la dichiarazione della classe)

    [DefaultEvent("TextChanged")]

    Fa si che al doppio click in design time ti venga creato agganciato l'evento specificato.

    Spero possa essere utile,

    Andrea

     

    Andrea Cruciani

Page 1 of 1 (6 items)
dotNet Umbria 2007-2008
Powered by Community Server (Commercial Edition), by Telligent Systems