2

私はここに来たばかりで、C# の CheckedListBox について質問があります。

SQLite データベース ファイルのデータを使用して CheckedListBox を作成しました。

ユーザーにアイテムをチェックまたはチェック解除してもらいたいのですが、そうすることでデータベースで更新されます。

リストを再度開くと、以前にチェックした項目がまだチェックされているはずです。つまり、データベースのブール フィールドが特定のアイテムに対して「true」と表示されている場合は、チェックする必要があります。

私が使用しているコードは次のとおりです。

index = 0;
        foreach (DataRowView item in CheckedListBox.Items)
            {
                if (item.Row["viewed"].ToString() == "true")
                {                        
                   CheckedListBox.SetItemCheckState(index, CheckState.Checked);                        
                }
                index++;
            }

Ifステートメントの行をコメントアウトすると、ループはすべての項目を通過しますが、上記のようにそのままにしておくと、ループは1回だけ入ります。

何故ですか?

私はC#が初めてです。

助けてくれてありがとう:)

4

1 に答える 1

1

for loopの代わりに使用しforeachます。

        for (int i = 0; i < checkedListBox1.Items.Count; i++)
        {
            if (((DataRowView)checkedListBox1.Items[i]).Row["viewed"].ToString() == "true")
            {
                checkedListBox1.SetItemCheckState(i, CheckState.Checked);
            }
        }
于 2011-08-07T14:10:11.000 に答える