2016-12-02 4 views
1

値がリストボックスに追加され、値がダブルとしての価格が項目の右側に文字列としてある単純なアプリケーションがあります。私は、項目がリストボックスに追加されるたびに価格を加算するラベルのコードを書いた。選択した項目をリストボックスから削除すると、ラベルをどのように更新するのですか?リストから値を差し引いたときのラベルの更新

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

?あなたの値があなたを上回る通貨記号を表示するようにフォーマットされているという事実はありますか?あなたがやろうとしたこととあなたが得ているエラーを私たちに示してください。異なるコントロールを使用することを検討してください。グリッドのようなもので、基になる値はまだ数値だけですが、通貨記号を含むように数値を整形するようにグリッドに指示できます。 –

+0

この質問を編集して、あなたが '}'を入れずに '}'のコードを投稿してください。これはメソッドの中に完全なメソッドを表示するだけでなく、 .. – MethodMan

+0

'label'の値を更新する完全なコードを書いてください。 –

答えて

1

あなたのイベントでbutton3_Clickあなたは、リストボックスの項目を削除する前に、ラベル値を設定する必要があります。特にあなたが立ち往生している

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

ありがとう。それは動作します。 –

+0

ようこそ@zia khan –

関連する問題