少し背景:私はWPFからWinFormsへの変換者であり、しばらくの間、アプリケーションを移行してきました。
友人から、私のコードはWindows 7(私が開発したもの)では正常に動作するにもかかわらず、Windows XPでは動作しない(起動時にスタックオーバーフローが発生する)と報告されました。
少し調べたところ、問題の原因は次のようなものでした。
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
listView1.SelectedIndices.Clear();
listView1.Items[0].Selected = true;
}
明らかに悪い決定に気付いたので、なぜそれがWindowsXPで機能しないのか不思議に思っていませんでした。なぜそれがWindows7で動作するのか疑問に思いました。
明らかに、ある時点でコンパイラは私がやろうとしていることを理解し、同じイベントが何度も発生するのを防ぎますが、私はむしろ何もしないようにしたいので、バグを確認してつぶすことができます2つのプラットフォームで同時にテストするのではなく、開発中のプラットフォーム。WPFに戻ると、e.Handledを「true」に設定することでこのような動作を手動で処理できました。WinFormsでは、そのようなことはないようです。
このためのコンパイラフラグのようなものはありますか?