双按一下按钮c#

时间:2018-02-18 21:23:44

标签: c# windows-forms-designer

我正在努力使按钮被多次按下并产生不同的结果。我有一些按钮可以将一些字符串添加到列表中。问题是我想按下按钮添加一个项目,如果我再按一次,则删除相同的项目。

private void labelPineapple_Click(object sender, EventArgs e)
{
     if (!My_Pizza.Items.Contains(pineapple))
     {
         My_Pizza.Items.Add(pineapple);
         labelPineapple.BackColor = Color.Green;
     }
}

1 个答案:

答案 0 :(得分:0)

你想要某种切换行为,当下次点击“拒绝”最后一次时,我们会有这种“切换”行为。如果我有更多详细信息,如果你有一个特定按钮的每个项目,或者如果你选择列表中的项目,然后按下按钮,我会更精确。

如果您选择一个项目,然后点击“删除”,您可以执行以下操作:

private void DeleteItem_Click(object sender, EventArgs e)
{
   listBox1.SelectedItems.Remove(listBox1.SelectedItems);
}

如果您使用相同的按钮删除添加的最后一个值,则可以使用局部变量来存储旧值,如:

private void labelPineapple_Click(object sender, EventArgs e)
{
   if (!My_Pizza.Items.Contains(pineapple))
   {
      My_Pizza.Items.Add(pineapple);
      labelPineapple.BackColor = Color.Green;
      _oldValue = pineapple;
   }
   else
   {
      My_Pizza.Items.Remove(_oldValue);
   }
}

如果相同的按钮始终只添加/删除相同的项目,请使用toggle button代替。

有时我们的开发人员会尝试用更难的方法解决简单的事情,当事情变得太复杂时,尝试写下你想要实现的目标和可能的解决方案。

更新:如果您在移除菠萝对象时有菠萝对象,则无需将其存储为_oldValue。您可以直接在else语句中删除它。