Aggiornamento risultato in una label

di il
9 risposte

Aggiornamento risultato in una label

Ciao a tutti carissimi e buone feste, avrei bisogno di un vostro consiglio su un esercizio che sto facendo. La mia applicazione prevede tramite l'uso di una form l'inserimento di alcuni parametri in una listbox. Devo inserire i dati di una gara ciclistica come i km, il nome della tappa ecc. e poi devo visualizzare in due label il numero delle tappe inserite e la somma dei km. Fin qui tutto bene i problemi iniziano quando tramite un bottone dovrei eliminare le tappe dalla listbox e aggiornare il risultato delle label. Il risultato del numero totale di tappe sono riuscito, ma non riesco ad aggiornare il totale dei km.
Vi posto il codice che ho elaborato e che implementa il bottone:

private void Button3_Click(object sender, EventArgs e)
{

int numTappe = 0;
objTappa.Km = Convert.ToDouble(visualizzaTotKm.Text);
listBox1.Items.Remove(listBox1.SelectedItem);

for (int i = 0; i < listBox1.Items.Count; i++)
{
numTappe = listBox1.Items.Count;
}

visualizzaTotKm.Text = Convert.ToString(Convert.ToDouble(visualizzaTotKm.Text) - this.objTappa.Km);
visualizzaNumTappe.Text = numTappe.ToString();
}

Il visualizzaTotKm.text è la label in cui dovrei visualizzare il totale dei Km aggiornato. Il numero delle tappe si aggiorna e decrementa ma quello dei km no.
Mi date qualche dritta?

9 Risposte

  • Re: Aggiornamento risultato in una label

    Mi sembra che tu stia facendo:
    Y = X
    ...
    X = X - Y

    Perché non fai direttamente X = 0 ? O volevi fare qualcos'altro?

    Poi perché il ciclo for sul totale delle tappe quando basta porlo uguale a Count un'unica volta?
  • Re: Aggiornamento risultato in una label

    Grazie della risposta. Si hai perfettamente ragione il ciclo for è inutile.
    Per aggiornare il risultato dei km nella label avevo anche provato a fare così:

    visualizzaTotKm.Text = Convert.ToString(Convert.ToDouble(visualizzaTotKm.Text) - objTappa.Km - this.objTappa.Km);

    Praticamente avevo pensato di sottrarre il contenuto della label è nella variabile objTappa.Km al valore dei Km contenuto nella stringa della listBox eliminata ma non funziona. Nella label è sempre visualizzato il totale dei km che avevo caricato prima e non sottrae il valore che ho eliminato.
    Sarà una stupidata ma non vedo la soluzione.
  • Re: Aggiornamento risultato in una label

    E che roba sarebbe objTappa? Perché this.objTappa è diverso da objTappa? Perché non usi semplicemente delle variabili? Hai provato a fare Refresh del form?
  • Re: Aggiornamento risultato in una label

    ObjTappa è un oggetto che avevo usato per accedere agli attributi della classe in questo caso l'attributo km, si avrei anche potuto usare delle variabili.
    in realtà this.objTappa e objTappa sono esattamente la stessa cosa era una prova.
    solo però non capisco una cosa quando io scrivo "visualizzaTotKm.Text = Convert.ToString(Convert.ToDouble(visualizzaTotKm.Text) - objTappa.Km);" non sto dicendo di sottrarre alla label visualizzaTotKm.text il valore contenuto objTappa.km che elimino dalla listbox?
  • Re: Aggiornamento risultato in una label

    Vabbè ma non puoi andare avanti a tentativi, la matematica non è un'opinione.
    Evidentemente stai facendo un'operazione per cui è giusto che ti ritorni zero o lo stesso valore di prima.

    No, non ho capito l'architettura generale ma mi pare proprio che objTappa non appartenga a listbox1 .
    Fai debug, metti un breakpoint e col puntatore del mouse o con "controllo immediato" esplora l'oggetto listbox1.SelectedItem e capirai da solo cosa devi fare
  • Re: Aggiornamento risultato in una label

    Ho chiaro quello che devo fare ma non so scriverlo. Ho provato a debaggare ma purtroppo non ho molta dimestichezza.
    Con l'add funziona tutto con il remove faccio più fatica
  • Re: Aggiornamento risultato in una label

    Veramente io non ho capito nulla ...
  • Re: Aggiornamento risultato in una label

    pioves ha scritto:


    Ho chiaro quello che devo fare ma non so scriverlo. Ho provato a debaggare ma purtroppo non ho molta dimestichezza.
    Con l'add funziona tutto con il remove faccio più fatica
    Ma dai. Qualunque cosa tu voglia fare, devi accedere dall'oggetto listbox1, non da un oggetto che non c'entra nulla
    
    string s1 = listbox1.SelectedItem.ToString();
    
    string s2 = listbox1.Items[0].ToString();
    
    Eccetera. Hai pure il completamento automatico quando aggiungi i punti, che vuoi di più dalla vita...

    Fai fatica perché procedi a caso, è normale
  • Re: Aggiornamento risultato in una label

    oregon ha scritto:


    Veramente io non ho capito nulla ...
    Praticamente è un esercizio in cui tramite delle textBox carico in una listBox delle informazioni riguardo ad una gara ciclistica. Vi carico Km totali della gara - vincitore - nome della tappa - data della gara. Quando carico le informazioni tramite un bottone, contemporaneamente visualizzo in una label il numero delle gare che ho caricato, e in un'altra label visualizzo la somma dei Km totali delle gare caricate. E questo sono riuscito senza problemi.
    Adesso voglio eliminare le tappe aggiornando però i valori delle label, quindi ho implementato un bottone che elimini la tappa selezionata e poi vengano aggiornati i valori. La tappa riesco ad eliminarla, il numero di tappe riesco a decrementarlo, ma non riesco a sottrarre i km della tappa eliminata a quelli già presenti. Sarà un stupidata ma non ci riesco.

    Adesso ho cambiato il codice usando delle variabili al posto dell'oggetto come suggeriva Weierstrass
Devi accedere o registrarti per scrivere nel forum
9 risposte