0

vs 2008-C#

チェックリストボックスに問題があります。誰かが私を助けてくれますか、またはこの問題を修正するために何をすべきかを教えてください。

ジョブが含まれるチェックリストボックスがあります。データセットから従業員に割り当てられたジョブをチェックし、それらのジョブのみがtrueであることを確認したい。問題は、最初のJobがtrueであるとチェックすると、foreachループから出て、例外がスローされることです。「この列挙子がバインドされているリストが変更されました。列挙子は、リストが変更されていない場合にのみ使用できます。」これは私が書いたコードです、

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++;
    }
}   
4

1 に答える 1

0

最初にアイテムの配列を作成してから、それを反復処理できます。

 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++;
 }
于 2012-10-03T06:43:18.690 に答える