Visualizzazione dei risultati da 1 a 5 su 5

Discussione: C# delegati

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    110

    C# delegati

    Ciao a tutti
    nella mia WPF ho 10 textbox nei quali l utente inserisce numeri.
    vorrei che nella texbox n.11 si visualizzi la somma delle altre.(quelle dove l utente non digita le ho impostate con valore 0.)
    visto che é un operazione che mi servirá spesso nel mio programma , ho creato prima il seguente metoto:

    public void Somma (int a, int b.......)
    {
    int sum= a + b+......
    }
    ho creato poi un delegato chiamato Del ( int a , int b.......)

    dentro ai textbox creo oggetto del1 e richiamo con esso il metodo Somma

    del1 = Somma;

    nessun errore in debug ma non mi appare il risultato

    perché??????l

    mi potete fare un piccolo esempio di codice per risolvere?

    grazie !!!!!!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma a che ti serve il delegato?

    Non ti appare il risultato perché non scrivi mai nel Textbox del risultato ...

    Ti basterebbe un metodo, senza argomenti e che non restituisce nulla che fa le semplici somme ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    110
    . Come devo scrivere nel textbox?
    textbox.text =Somma; ????

  4. #4
    Utente di HTML.it L'avatar di escocat
    Registrato dal
    Feb 2012
    Messaggi
    308
    Usare i "delegati" per questi problemi vuol dire andare a caccia di canarini col carro armato...
    Tutto quello che ti serve è un metodo Somma fatto più o meno così (molto meno che più, nel senso che questo è un esempio alla buona):

    codice:
            public void Somma(TextBox t1, TextBox t2, TextBox t3)
            {
                int a, b, c;
                if (t1.Text == "")
                    a = 0;
                else
                    a = int.Parse(t1.Text);
                if (t2.Text == "")
                    b = 0;
                else
                    b = int.Parse(t2.Text);
                if (t3.Text == "")
                    c = 0;
                else
                    c = int.Parse(t3.Text);
                label1.Text = (a + b + c).ToString();
            
            }
    Il risultato non serve metterlo in una textBox perchè dovrebbe essere di sola lettura, quindi meglio una label.
    Nel Load del Form1 inizializzi i controlli:

    codice:
                textBox1.Text = "0";
                textBox2.Text = "0";
                textBox3.Text = "0";
                label1.Text = "0";

    e dentro l'evento TextChanged di ogni textBox richiamerai semplicemente il metodo Somma:

    codice:
    Somma(textBox1, textBox2, textBox3);
    Tutto qui.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    110
    Alla grande!
    grazie mille sei stato chiarissimo

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.