2017-02-02 40 views
0

我刪除一個項目到列表框中後,它也會從文本框中扣除值。 這是我的代碼。c#從列表框中刪除項目,然後它會從文本框中扣除值

private void listBox1_DoubleClick(object sender, EventArgs e) 
    { 
     int total1 = Convert.ToInt32(txtTotal.Text); 


     if (listBox1.Text =="item1 600") 
     { 

      listBox1.Items.RemoveAt(listBox1.SelectedIndex); 
      total1 -= 600; 
     } 
    } 

在此先感謝!

+1

你有什麼實際問題? – NicoRiff

+3

'txtTotal.Text = total1.ToString();' – JohanP

+0

嗯,我只想刪除列表框中的項目,它會從文本框中扣除值。 – sakusa1

回答

0

這應該會從總的TextBox刪除600:

private void listBox1_DoubleClick(object sender, EventArgs e) 
    { 
     int total1 = int.Parse(txtTotal.Text); 

     if (listBox1.SelectedValue.ToString() == "item1 600") 
     { 

      listBox1.Items.RemoveAt(listBox1.SelectedIndex); 
      total1 -= 600; 

      txtTotal.Text = total1 + ""; 
     } 
    } 
+0

哥們我從listbox1.selectedvalue.tostring()代碼中得到了一個錯誤,但是我將它改爲了listBox1.Text,現在沒事了,謝謝! – sakusa1

+0

沒問題。你應該把它標記爲回答:) – CNuts

0

您應該考慮創建一個包含兩條信息的對象。通過該對象,您可以重寫.ToString()方法以僅顯示Item1並從非查看屬性中獲取600。

喜歡的東西:

public class MyItem 
{ 
    public string Text {get; set;} 
    public string Amount {get; set;} 

    public override string ToString() 
    { 
     return Text; 
    } 
} 

然後你就可以實例化一個新的對象,並設置名稱和金額的屬性,然後將其添加到您的列表框。

當您即將移除您的物品時,您可以從物品中獲取金額並從總金額中扣除。這將減輕你必須爲列表中的每個項目創建一個If語句。這