Un peu de contexte : Je suis un converti de WPF à WinForms et depuis quelque temps je suis en train de migrer mon application.
Un ami m'a signalé que mon code ne fonctionne pas sous Windows XP (il génère un débordement de pile au démarrage) alors qu'il fonctionne parfaitement sous Windows 7 (sous lequel je développe).
Après une petite recherche, la cause du problème était quelque chose de ce genre :
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
listView1.SelectedIndices.Clear();
listView1.Items[0].Selected = true;
}
Maintenant que j'ai remarqué cette mauvaise décision évidente, je ne me demandais pas pourquoi il ne fonctionne pas sous Windows XP. Je me demandais pourquoi cela fonctionne-t-il sur Windows 7 .
Il est évident qu'à un moment donné, le compilateur comprendra ce que j'essaie de faire et empêchera le même événement d'être déclenché encore et encore, mais Je préférerais qu'il ne fasse rien, afin que je puisse voir et éliminer le bogue à vue sur la plateforme sur laquelle je développe, plutôt que de devoir le tester sur deux plateformes simultanément. Dans WPF, je pouvais gérer ce type de comportement manuellement en donnant à e.Handled la valeur 'true', mais dans WinForms, cela n'existe apparemment pas.
Existe-t-il une sorte d'indicateur de compilation pour cela ?