Disabilitare un evento in C#

di
Anonimizzato10204
il
3 risposte

Disabilitare un evento in C#

Ciao a tutti. Ho impostato l' OnChange di un TextBox e quando cambio il valore da codice viene richiamato. Vorrei che venisse richiamato solo quando si scrive nel TextBox e non da codice. È possibile? Ho provato a usare un flag ma non credo sia il metodo giusto.

3 Risposte

  • Re: Disabilitare un evento in C#

    Ciao Orso Bruno,
    per disabilitare un evento devi scrivere una cosa del genere:
    
    textBox1.TextChanged -= textBox1_TextChanged;
    textBox1.Text = "abcd";
    textBox1.TextChanged += textBox1_TextChanged;
    
    In questo modo l' assegnamento non richiamerà l' evento TextChanged.
  • Re: Disabilitare un evento in C#

    Funziona perfettamente! Però non capisco il -= cioè capisco cosa fa ma non capisco cosa è. Se me lo puoi spiegare.
  • Re: Disabilitare un evento in C#

    Ciao Orso Bruno,
    la variabile che tu assegni con += e -= è di tipo MulticastDelegate questa classe contiene una 'invocation list' e con questi operatori tu aggiungi o togli metodi a questa lista.

    Questo significa che quando si verifica un certo evento non necessariamente viene invocata una sola funzione ma possono essere richiamate più funzioni in sequenza, è una caratteristica che in alcuni casi può essere interessante.
Devi accedere o registrarti per scrivere nel forum
3 risposte