2016-07-15 19 views
1

私のプロジェクトでは、いくつかのテキストボックス入力と、おそらくフォームに2つのインデックス付きアイテムを持つコンボボックスがあります。入力が両方のテキストボックス入力に与えられていない場合はロード時に無効にするボタンがあり、テキストを削除してもうまく動作します。しかし、コンボボックスを同じように動作させることに問題があります。しかし、この作品:Combox入力が削除された場合、無効にするボタン

Private Sub cboPickShirts_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboPickShirts.SelectedIndexChanged 

    InputCheck_3 = True 

    If cboPickShirts.SelectedIndex < 0 Then 
     InputCheck_3 = False 

    End If 

    If InputCheck_3 = False Then 
     btnInputResult.Enabled = False 

    ElseIf InputCheck_3 = True Then 
     btnInputResult.Enabled = True 

    End If 
End Sub 

私はInputCheck_3Public Moduleにグローバル変数として設定しています。フォームのロード時に、私は自分のボタンを無効にしています。インデックス付きアイテムの1つを選択するまで有効になりません。コンボボックスのテキストが入力されて削除された場合、そのボタンを無効にするという私の苦労は、nullまたは空のままになります。何が欠けているか、結果を得るために追加できるものは何ですか?変更に気づくには変数またはイベントが必要です(&テキストの削除)。

+0

cboPickShirts.SelectedIndexを0より小さくすることはできますか? – Sami

+0

はい、コンディションのテストに使用されているので、コンボボックスの入力がそのコンボボックスのインデックス内のアイテムの数より少ない場合は、何かを実行してください。 ゼロはインデックスの先頭なので、私は基本的には、インデックスに何も入力されていない場合は、いくつかのアクションを実行すると言っています。 – DesignerMind

答えて

1

は、あなたが持っている問題は、あなたのコンボボックスから選択した項目を削除すると、あなたのSelectedIndexChangedイベントがトリガされていないことです。あなたのTextBoxとComboBoxのTextChangedイベントを使用して共通のハンドラを与え、そのようにチェックします。このようなもの

Private Sub TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, cboPickShirts.TextChanged 
    EnableCheck() 
End Sub 

Private Sub EnableCheck() 
    btnInputResult.Enabled = (String.IsNullOrEmpty(TextBox1.Text) And String.IsNullOrEmpty(TextBox2.Text) And ComboBox1.SelectedIndex = -1) 
End Sub 

comboBoxがテキストボックスと同じ方法でNullorEmptyであることを確認することもできます。現時点では、コンボボックスは、テキストが選択項目に一致しなくなったときに有効になります。

+1

あなたが周りにいた人をもっとも尊敬しています。これは最も優れていました。しかし、私は別のコンボボックスを追加し、それを可能にするボタンの問題に遭遇しました...しかし、私はそれを解決しました:)すべてのコントロールが空であることを考慮して提案されたチェックメソッドを拡張し、最後のコンボコントロール'TextChanged'サブ、すべてが順調でした。また、最後のコンボ用に4番目の 'InputCheck'モジュールをセットアップしました。これはすばらしいマークであり、間違いなく棚を賢明に保つためのものです。 – DesignerMind

+0

あなたの歓迎、私は助けてくれてうれしいです。 –

1

1行のコード

btnInputResult.Enabled = If((cboPickShirts.SelectedIndex<0),False, True) 
+0

@DesignerMind、あなたの問題を修正しますか? – Sami

+0

いいえ、私はこれを達成することができますが、目指すのは、インデックス項目(選択された索引)を選択しない以外に、任意のテキストが「コンボボックスに入力された」場合は、コンボボックスを無効のままにしておくことです。テキストを入力して削除してもこれによりボタンが有効になりますが、値が削除されてもボタンは有効のままです。 – DesignerMind

関連する問題