古いインデックスと新しいインデックスが同じ場合でも、winformのcomboxのSelectedIndexChanged
イベントを発生させる必要があるシナリオがあります。値がプログラムで設定されているため、SelectionChangeCommited
を使用できません。 ..そしてそれは解雇されません。古いものと同じインデックスが同じ場合でも、「SelectedIndexChanged」を強制的に起動するのは偶然ですか?
イベントハンドラーを直接呼び出すことを妨げるものは何もありません。
comboBox1_SelectedIndexChanged(comboBox1, new EventArgs()); // or (null, null)
しかし、atomaras
の解決策は、それを行うためのより良い(より良い)方法です。
私自身、それほど深刻ではないソフトウェアで標準コンポーネントを使用するのは嫌いです。代わりに、すべての標準コンポーネントを最初からサブクラス化し、既存のフォームで何も変更することなく、必要に応じてすぐに機能を追加します。
この場合、イベントを実行するためにパブリックイベントライザーOnSelectedIndexChanged
を追加します(イベントハンドラー内でコードを実行するためにプログラムで)。
同じアイテムに対してイベントを再起動するのは奇妙に思えます。これはおそらく、イベントハンドラロジックを再実行したいだけだからです。 SelectionChangedロジックを新しいメソッドに抽出し、それをプログラムで呼び出さないのはなぜですか?