【问题标题】:Programmatically set checked item in CheckListBox以编程方式在 CheckListBox 中设置选中项
【发布时间】:2015-09-11 11:23:51
【问题描述】:

我正在尝试根据某些标准在复选框中设置以编程方式检查的项目。这是代码:

int chItm = 0;

foreach (DataRowView row in chLBDatumi.Items)
 {                
     if (row["DatumGO"].ToString().Equals(myListItems[chItm].ToString()))
     {
          chLBDatumi.SetItemChecked(chItm, true);
     }
     chItm++;                
 }

但它会抛出异常:

此枚举器绑定的列表已被修改。枚举器 只能在列表不变的情况下使用。

还有其他方法可以做到吗?

【问题讨论】:

    标签: c# checklistbox


    【解决方案1】:

    使用for 循环而不是foreach

    for (int i = 0; i < chLBDatumi.Items.Count(); i++)
    {                
        if (chLBDatumi.Items[i]["DatumGO"].ToString().Equals(myListItems[chItm].ToString()))
         {
             chLBDatumi.SetItemChecked(chItm, true);
         }
        chItm++;                
    }
    

    【讨论】:

    • chLBDatumi.Items[i]["DatumGO"].ToString() 上出现错误“无法使用 [] 将索引应用于 'object' 类型的表达式”
    • 检查这是否有效:chLBDatumi.Items.Cast&lt;DataRowView&gt;().ElementAt(i)["DatumGO"]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多