【问题标题】:C# form - CheckboxesC# 表单 - 复选框
【发布时间】:2013-02-26 16:01:21
【问题描述】:

我想知道如何限制我的复选框添加到我的列表框中。当用户选中复选框时,它会将“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);
                }            
        }

【问题讨论】:

  • 好吧,检查您的列表框是否已经包含该值...
  • 如果用户取消选择它不应该从您的列表框中消失吗?
  • 旁注:您可以创建一个从复选框继承的控件,该控件具有一个属性值,允许您创建一个通用的检查更改函数,如包含不同种类鱼的字符串值(披萨配料?)

标签: c# forms checkbox


【解决方案1】:

关键是检查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);
             }
        }            
}

【讨论】:

    【解决方案2】:

    这样做

    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);
                }      
    

    【讨论】:

      【解决方案3】:

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

      例如

      foreach (var item in listBox1.Items )
      {
        if(item.ToString() != "Anchovies")
        {
          listBox1.Items.Add("Anchovies");
        }
        // other code here.
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多