2016-11-23 1 views
-1

私は、自分のSQL Expressデータベースのデータに基づいて作成するwinformsアプリケーションにcomboBoxを持っています。ユーザーが「次のレコード」ボタンをクリックするたびに1ずつインクリメントします。それはコンボボックスの終わりに達したとき、私は例外を処理する方法をコンボボックスの終わりを処理する方法

comboBox4.SelectedIndex = comboBox4.SelectedIndex + 1; 

:操作を行い、この単純なコードをどの持っていますか?それが終わりに達すると、上のコードが実行された後に次に行く価値はないからです。私は、あなたが "あなたのcomboBoxの終わりに達しましたか?"というMessageBoxポップアップを持っているとしましょう。

+3

何を試しましたか? 'if()'と 'comboBox4.Items.Count'を使うとかなり遠くに来るでしょう。 – CodeCaster

答えて

3

SelectedIndexをインクリメントする前に、ComboBoxのItems.Countで確認できます。

if (comboBox1.SelectedIndex < comboBox1.Items.Count - 1) 
    comboBox1.SelectedIndex += 1; 
1

SQL Expressからフェッチするので、これらのレコードのCOUNTを識別できます。そうすれば、そのようなレコードの総数を知ることができます。たとえば、変数intCount)という名前の変数に保存します。

として次に、あなたのコードを書くことができます:

int count = //get the total number of such records from the database 
if (comboBox4.SelectedIndex != (count -1)) 
{ 
    comboBox4.SelectedIndex = comboBox4.SelectedIndex + 1; 
} 

は、この情報がお役に立てば幸いです!

+0

'comboBox4.SelectedIndex = comboBox4.SelectedIndex ++'は 'comboBox4.SelectedIndex = comboBox4.SelectedIndex + 1'と同じではありません。コードを削除しても、必ずしも単純化されるとは限りません。また、カウントを行うためにデータベースに別のクエリを実行する必要はなく、アイテムをコンボボックスに割り当てたので、単に 'Items.Count'を使うことができます。 – CodeCaster

+0

@コードキャスター私はあなたのポイントを得る。この文脈では、それは正しいです。 –

+0

そう、簡略化段落を削除し、何も追加しません。 SelectedIndexも0から始まります。 – CodeCaster

関連する問題