J'ai un problème avec des conditions de course avec WinForms.Winform ListViewItem Statut Vérifié Basculer
listViewCollections.ItemChecked += foo //Somewhere
void foo(object sender, ItemCheckedEventArgs e)
{
if (e.Item.Checked == false) return;
bool flag = bar(e.Item.Index);
if (flag) {
MessageBox.Show(...)
e.Item.Checked = false;
}
}
Parfois, la boîte de message s'affiche deux fois. Quelle est la bonne façon de faire cela? Merci d'avance!
Est-ce que vous configurez les éléments par programmation? La seule façon de reproduire votre problème est de définir plus d'un élément par programmation. – kevev22
Oui, juste après la première clause if, il y a une boucle qui efface (met à false) d'autres cases dans le même ListView. Je ne pensais pas que ce serait pertinent. Je m'attendrais à ce que certains événements soient virés et soient attrapés par le premier si conditionnel. – Gleno
Peut-être que cela va vous aider: http://msdn.microsoft.com/en-us/library/c5kehkcz(v=VS.100).aspx – kyndigs