我有listBox的这个事件代码:
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();
}
}
我使用新的bool变量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事件中解决这个问题呢?
答案 0 :(得分:0)
我现在看到我不需要Form1中的代码部分只有这段代码:
private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
item = listBox1.SelectedItem.ToString();
this.f1.PlayLightnings();
f1.pdftoolsmenu();
if (item != null && !pdf1.Lightnings.Contains(item.ToString()))
{
pdf1.Lightnings.Add(item.ToString());
}
}