0

コンボボックスに取り組んでいます。コンボボックスの値を更新しています。最初にすべての値を削除してから、値を再入力しています。しかし、それは機能していません。コードは、問題を引き起こしているコンボボックスの値を複製します。これが私のコードです。

    for (int i = 0; i < updateCombo.Items.Count; i++)
    updateCombo.Items.RemoveAt(i);

    //----------- Now Adding New Values --------
    updateCombo.Items.Add("Select an option . . .");

    SqlCommand command = new SqlCommand(Queries.qry9, connection);
    SqlDataReader reader = command.ExecuteReader();

この問題の解決にご協力ください。

4

2 に答える 2

3

なぜこれが起こるのかわかりませんが、Items.Count が 0 に戻った場合、ループはアイテム リストから既存のコンテンツを削除せず、重複が発生します。

以下を使用しても、リストのすべての内容をクリアしようとしましたか:

updateCombo.Items.Clear(); 

とにかくそれらを1つずつ削除して、それらすべてを繰り返し処理する必要がなくなります。

于 2012-08-11T10:39:15.863 に答える
1

for ループは、アイテムを 0、次に 1、次に 2 などで削除しています。ただし、0 の項目が削除されても、リスト内のその位置は空のままではなく、他の項目は効果的に 1 つ下に移動します。

したがって、クリアリング コードを次のように変更した場合:

for (int i = 0; i < updateCombo.Items.Count; i++)
updateCombo.Items.RemoveAt(0);

それはうまくいくはずです。ただし、他の人が示唆しているように、使用updateCombo.Items.Clear();はより良いアプローチです。

于 2012-08-11T11:39:49.717 に答える