2016-12-02 1 views
1

Ich habe eine einfache Anwendung, wo Werte zu einer Listbox hinzugefügt werden und der Preis als Doppel ist auf der rechten Seite eines Elements als String. Ich habe den Code für ein Label geschrieben, der den Preis jedes Mal addiert, wenn ein Artikel zur Listbox hinzugefügt wird. Wie aktualisiere ich das Etikett, wenn ich ein ausgewähltes Element aus der Listbox entferne.Update Label, während Werte von der Liste abgezogen werden

public void Form2_Load(object sender, EventArgs e) 
    { 

     foreach (Control butt in groupBox2.Controls) 
     { 
      if (butt is Button) 
      { 
       ((Button)butt).Click += Form2_Click; 
      } 
     } 
    } 

    public void Form2_Click(object sender, EventArgs e) 
    { 


     string st1 = ((Button)sender).Text; 

     if (st1 == "Family_Pizza") 
     { 
      price = 22.95; 

     } 
     else if (st1 == "Large_Pizza") 
     { 
      price = 16.95; 

     } 
     else if (st1 == "Medium Pizza") 
     { 
      price = 11.95; 

     } 
     else if (st1 == "Small Pizza") 
     { 
      price = 7.95; 

     } 
     else if (st1 == "Garlic Bread") 
     { 
      price = 4.95; 

     } 
     else if (st1 == "BBQ Ribs") 
     { 
      price = 9.95; 

     } 
     else if (st1 == "BBQ Wings") 
     { 
      price = 9.95; 

     } 
     else if (st1 == "Express Combo") 
     { 
      price = 5.95; 

     } 
     else if (st1 == "1.25 L Drink") 
     { 
      price = 4.50; 

     } 
     else if (st1 == "375 ml Drink") 
     { 
      price = 2.60; 

     } 
     else if (st1 == "600 ml Drink") 
     { 
      price = 3.50; 

     } 
     else if (st1 == "Ben 'n' Jerry Core") 
     { 
      price = 13.50; 

     } 
     else if (st1 == "Ben 'n' Jerry Pint") 
     { 
      price = 11.95; 

     } 


     s2 = price.ToString("C"); 


     string item = st1; 
     string value=s2.PadLeft(s2.Length+8,' '); 


     listBox1.Items.Add(item+value); 
     updprice = price + updprice; 
     label2.Text = updprice.ToString("C"); 

    } 


private void button3_Click(object sender, EventArgs e) 
{ 
    listBox1.Items.Remove(listBox1.SelectedItem); 
} 

enter image description here

+0

Wo spezifisch sind Sie stecken? Ist die Tatsache, dass Ihre Werte so formatiert sind, dass Währungssymbole angezeigt werden, Sie zu stolpern? Zeigen Sie uns, was Sie versucht haben, und den Fehler, den Sie bekommen, damit wir Ihnen bei der Behebung helfen können. Erwägen Sie auch, ein anderes Steuerelement zu verwenden ... so etwas wie ein Raster, bei dem der zugrunde liegende Wert immer noch nur eine Zahl ist, aber Sie können dem Raster mitteilen, dass die Zahl formatiert werden soll, um Währungssymbole einzufügen. –

+0

editieren Sie bitte diese Frage und posten Sie alle relevanten Code haben Sie '}' ohne eine öffnung '{' Wenn dies innerhalb einer Methode ist, zeigen Sie die vollständige Methode und zeigen Sie uns, wo in Ihrem Code Dinge nicht so geschehen, wie Sie erwarten .. – MethodMan

+0

Legen Sie den vollständigen Code, der den Wert der "Label" aktualisiert. –

Antwort

1

bei Ihrer Veranstaltung button3_Click Sie das Etikett Wert vor dem Entfernen Sie den Eintrag setzen müssen:

private void button3_Click(object sender, EventArgs e) { 
    double price = 0; 
    if (listBox1.SelectedItem.ToString().IndexOf("Family_Pizza") > -1) { 
    price = 22.95; 
    } 
    . 
    . 
    . 
    else if (listBox1.SelectedItem.ToString().IndexOf("Ben 'n' Jerry Pint") > -1) { 
    price = 11.95; 
    } 

    double label_value = Convert.ToDouble(label2.Text.Replace("$", "")); 
    label_value -= price; 
    label2.Text = label_value.ToString("C"); 
    listBox1.Items.Remove(listBox1.SelectedItem); 
} 
+0

Danke Mann. Das funktioniert. –

+0

Gern geschehen @zia Khan –

Verwandte Themen