コンボコントロールのSelectedIndexChangedイベントの発生条件が4.0J以前のバージョンと異なります
対象製品
InputMan for Windows Forms 8.0J
詳細
InputMan for Windows Forms(以下、InputMan)は5.0Jにおいて大幅な機能変更が行われました。
その際に、コンボコントロールのSelectedIndexプロパティが-1に変わる場合においても、SelectedIndexChangedイベントが発生する仕様になりました。これはGcComboBoxコントロールとラッパーのコンボコントロールの両方に共通した修正です。
この仕様により、コンボコントロールに値を入力した時や項目をクリアした場合などにもSelectedIndexChangedイベントが発生するようになります。
4.0J以前のバージョンと同様の動作を実現する場合には、SelectedIndexChangedイベント内で以下のいずれかの判定を行う必要があります。
[Visual Basic]
[C#]
その際に、コンボコントロールのSelectedIndexプロパティが-1に変わる場合においても、SelectedIndexChangedイベントが発生する仕様になりました。これはGcComboBoxコントロールとラッパーのコンボコントロールの両方に共通した修正です。
この仕様により、コンボコントロールに値を入力した時や項目をクリアした場合などにもSelectedIndexChangedイベントが発生するようになります。
4.0J以前のバージョンと同様の動作を実現する場合には、SelectedIndexChangedイベント内で以下のいずれかの判定を行う必要があります。
- SelectedIndexプロパティが-1かどうか。
- コントロールの項目数が 0 でないかどうか。
[Visual Basic]
Private Sub GcComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GcComboBox1.SelectedIndexChanged ' SelectedIndexを判定する場合 If GcComboBox1.SelectedIndex = -1 Then Exit Sub End If ' 項目数を判定する場合 If GcComboBox1.Items.Count = 0 Then Exit Sub 'End If ' 実行したい処理を実装します。 MessageBox.Show("処理を実行します。") End Sub
[C#]
private void gcComboBox1_SelectedIndexChanged(object sender, EventArgs e) { // SelectedIndexを判定する場合 if (gcComboBox1.SelectedIndex == -1) { return; { //// 項目数を判定する場合 //if (gcComboBox1.Items.Count == 0) //{ // return; //} // 実行したい処理を実装します。 MessageBox.Show("処理を実行します。"); }