Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357

    [C#] Controlli utente ed eventi

    Buonasera


    Ho creato un controllo utente (es. MioControllo) che contiene delle Label, due TextBox e due Button.

    Una volta portato il mio MioControllo su una form non so come fare per intercettare il click dei Button all'interno di MioControllo.

    Ho provato a gestire l'evento Click di MioControllo ma esso si scatena solo se clicco lo sfondo di MioControllo e non se clicco sul Button.

    Forse devo creare un nuovo evento in MioControllo e in qualche modo collegarlo la click del Button... forse... e comunque non so come.


    Mi date qualche idea per uscire da questa situazione di stallo?

    :master:

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    devi definirti un tuo evento nel controllo che si scatena quando viene invocato il click sul bottone..

    http://www.csharphelp.com/archives/archive253.html

  3. #3
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    grazie per la risposta Stoicenko
    domattina me lo leggo per bene


  4. #4
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    ok l'ho letto, ma lo stallo persiste

    devi definirti un tuo evento nel controllo che si scatena quando viene invocato il click sul bottone..
    dove lo definisco? immagino (uso VS2008) nel file MioControllo.cs e non in MioControllo.Designer.cs che viene generato in automatico da VS...

    Codice PHP:
    namespace MieiControlli
    {
        
    delegate void ButtonEventHandler(object sourceint clickCount);
        
        public 
    partial class MioControllo UserControl
        
    {
            public 
    event ButtonEventHandler ButtonClick;

    .... 
    già l'inserimento di quelle 2 righe di codice mi genera un errore:

    Errore 1 Accessibilità incoerente: il tipo di campo 'MieiControlli.MioControllo.ButtonEventHandler' è meno accessibile del campo 'MieiControlli.MioControllo.ButtonClick'

    :master:

  5. #5
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    il delegato deve essere pubblico come l'evento

  6. #6
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    ok ora non mi da più errore
    non solo.. nella form dove ho trascinato il mio controllo già è presente l'evento ButtonClick

    vado avanti...

    nel codice di MioControllo all'evento Click del Button ho associato l'evento ButtonClick così:
    Codice PHP:
            private void btnCambia_Click(object senderEventArgs e)
            {
                
    ButtonClick(thise);
            } 
    e funziona!!!

    Grazie Stoicenko!

  7. #7
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    attenzione di controllare se l'evento è ascoltato
    codice:
    private void btnCambia_Click(object sender, EventArgs e)
            {
                if(ButtonClick!=null)
                       ButtonClick(this, e);
            }

  8. #8
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    cioè? che significa "se l'evento è ascoltato"?

  9. #9
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    che esiste un possessore del controllo che è in ascolto di tale evento cioè quando fai controllo.evento+=......

    se nessuno è in ascolto l'evento sarà nullo e andrai in eccezione

  10. #10
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    Originariamente inviato da ganesha
    cioè? che significa "se l'evento è ascoltato"?
    ahhhh penso di aver ho capito:
    è ascoltato se gestisco l'evento associandolo a una event handler nella form, giusto?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.