1

我想知道如何限制我的复选框添加到我的列表框中。当用户选中复选框时,它会将“Anchovies”添加到列表框中。我不希望发生的是当用户取消选择复选框并再次重新选择它时,“Anchovies”再次添加到列表框中(显示两批“Anchovies”)。

private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {           
                if (checkBox1.Checked)
                 {
                     listBox1.Items.Add("Anchovies");
                     double total = Convert.ToDouble(textBox2.Text);
                     total = total + .5;
                     textBox2.Text = Convert.ToString(total);
                }            
        }
4

3 回答 3

3

关键是检查项目Anchovies上是否已经存在listBox1

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{           
        if (checkBox1.Checked)
         {
             //If the item is already there, we don't do anything.
             if (!listBox1.Items.Contains("Anchovies")) {
                 listBox1.Items.Add("Anchovies");
                 double total = Convert.ToDouble(textBox2.Text);
                 total = total + .5;
                 textBox2.Text = Convert.ToString(total);
             }
        }            
}
于 2013-02-26T07:46:23.673 回答
3

这样做

if (checkBox1.Checked)
             {
                 if(!listBox1.Items.Contains("Anchovies"))
                     listBox1.Items.Add("Anchovies");
                 double total = Convert.ToDouble(textBox2.Text);
                 total = total + .5;
                 textBox2.Text = Convert.ToString(total);
            }      
于 2013-02-26T07:46:44.893 回答
0

要解决此问题,您需要在插入任何值之前检查您的列表框(对于此值,它是否已经存在或不存在)。

例如

foreach (var item in listBox1.Items )
{
  if(item.ToString() != "Anchovies")
  {
    listBox1.Items.Add("Anchovies");
  }
  // other code here.
}
于 2013-02-26T07:50:21.327 回答