我是新来的,对 C# 的 CheckedListBox 有疑问。
我使用 SQLite 数据库文件中的数据构建了 CheckedListBox。
我希望用户选中或取消选中项目,并在这样做时更新数据库。
当您再次打开列表时,您之前选中的项目仍应被选中。即,如果数据库中的 bool 字段对特定项目说“真”,则应检查它。
这是我使用的代码:
index = 0;
foreach (DataRowView item in CheckedListBox.Items)
{
if (item.Row["viewed"].ToString() == "true")
{
CheckedListBox.SetItemCheckState(index, CheckState.Checked);
}
index++;
}
当我注释掉 If 语句中的行时,循环遍历所有项目,但是当我像上面那样保留它时,循环只进入一次。
这是为什么呢?
我真的是 C# 新手。
感谢您的帮助:)
使用for循环
代替foreach
。
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
if (((DataRowView)checkedListBox1.Items[i]).Row["viewed"].ToString() == "true")
{
checkedListBox1.SetItemCheckState(i, CheckState.Checked);
}
}
我是一名优秀的程序员,十分优秀!