2

我是新来的,对 C# 的 CheckedListBox 有疑问。

我使用 SQLite 数据库文件中的数据构建了 CheckedListBox。

我希望用户检查或取消选中项目,并在这样做时更新数据库。

当您再次打开列表时,您之前检查的项目仍应被检查。即,如果数据库中的布尔字段对特定项目说“真”,则应检查它。

这是我正在使用的代码:

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

当我注释掉 If 语句中的行时,循环遍历所有项目,但是当我像上面一样离开时,循环只进入一次。

这是为什么?

我对 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 回答