我有这个列表框的事件代码:
I tried ot do it this way and it's almost working good.
private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (recentItems.Contains(listBox1.SelectedItem))
{
itemExist = true;
item = listBox1.SelectedItem.ToString();
this.f1.PlayLightnings();
f1.pdftoolsmenu();
}
else
{
itemExist = false;
item = listBox1.SelectedItem.ToString();
recentItems.Add(listBox1.SelectedItem.ToString());
this.f1.PlayLightnings();
f1.pdftoolsmenu();
}
}
我正在使用一个新的布尔变量 itemExist 并检查 List recentItems 是否不包含 selectedItem 添加它。
如果它确实存在,则将该标志设置为 true。
然后在 Form1 的其他代码中,我正在做:
if (Lightnings_Extractor.Lightnings_Mode.itemExist == true)
{
if (!pdf1.Lightnings.Contains(Lightnings_Extractor.Lightnings_Mode.item))
{
pdf1.Lightnings.Add(Lightnings_Extractor.Lightnings_Mode.item);
}
}
所以它可以按我的意愿工作,但问题是我在 listBox 中选择的每个新项目都单击它我必须单击它两次,因为第一次它不在recentItems 中,只有在第二次单击它在recentItems 中才会这样做,而且只有在第二次单击时,它将标志更改为 true。
那么如何在 SelectedIndexChanged 事件中解决这个问题呢?