C# 如何仅为数据集C中的数据设置checkedlistbox复选框#
vs 2008-C# 我的checkedlistbox有问题,有人能帮我吗,或者告诉我该怎么做来解决这个问题 我有一个复选框,里面有作业。 我想检查从数据集中分配给员工的作业,并仅检查这些作业是否为真。。 问题是当它检查第一个作业是否为真时, 它从foreach循环中出来并抛出异常。 “此枚举数绑定到的列表已被修改。仅当列表未更改时,才能使用枚举数。” 这是我写的代码C# 如何仅为数据集C中的数据设置checkedlistbox复选框#,c#,winforms,visual-studio,visual-studio-2008,C#,Winforms,Visual Studio,Visual Studio 2008,vs 2008-C# 我的checkedlistbox有问题,有人能帮我吗,或者告诉我该怎么做来解决这个问题 我有一个复选框,里面有作业。 我想检查从数据集中分配给员工的作业,并仅检查这些作业是否为真。。 问题是当它检查第一个作业是否为真时, 它从foreach循环中出来并抛出异常。 “此枚举数绑定到的列表已被修改。仅当列表未更改时,才能使用枚举数。” 这是我写的代码 string sSQL="select JOBNO from RentalVehicle"; dataset ds = muns
string sSQL="select JOBNO from RentalVehicle";
dataset ds = munshi.executeDS(sSQL,"Jobs").Tables["Jobs"];
foreach(DataRow Erow in ds.Rows)
{
int CLB_RowNo = 0;
//Jobdetail(2010-0191, HWS-01, ISB-6,KAD2-2, MAINT-01, PMO-2011-0052)
string[] JNos = Erow["JOBNO"].ToString().Split(', ');
string SelectedJob = "", AJob = "";
// Looping CLB_JobNo(CheckedListBox)
foreach (Object obj in CLB_JobNo.Items)
{
int i = 0;
SelectedJob = obj.ToString();
foreach (string part in JNos)
{
AJob = JNos[i].ToString();
if (SelectedJob == AJob)
{
CLB_JobNo.SetItemChecked(CLB_RowNo, true);
}
i++;
}
CLB_RowNo++;
}
}
您可以先创建一个项目数组,然后对其进行迭代
Object[] jobs = CLB_JobNo.Items.Cast<Object>().ToArray();
foreach (Object obj in jobs)
{
SelectedJob = obj.ToString();
if (JNos.Contains(SelectedJob))
{
CLB_JobNo.SetItemChecked(CLB_RowNo, true);
}
CLB_RowNo++;
}
Object[]jobs=CLB_JobNo.Items.Cast().ToArray();
foreach(作业中的对象对象对象)
{
SelectedJob=obj.ToString();
if(JNos.Contains(SelectedJob))
{
CLB_JobNo.SetItemChecked(CLB_RowNo,true);
}
CLB_RowNo++;
}
尝试for
循环,而不是foreach
循环,并根据index@Habib谢谢你,你解决了我的问题。你的小帖子很有帮助。