我正在努力使按钮被多次按下并产生不同的结果。我有一些按钮可以将一些字符串添加到列表中。问题是我想按下按钮添加一个项目,如果我再按一次,则删除相同的项目。
private void labelPineapple_Click(object sender, EventArgs e)
{
if (!My_Pizza.Items.Contains(pineapple))
{
My_Pizza.Items.Add(pineapple);
labelPineapple.BackColor = Color.Green;
}
}
答案 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语句中删除它。