2011-12-18 4 views
1

작동하지 않습니다 목록 상자의 검사 항목을 검사 : 내가 항목을 검사 할 때내가의 PictureBox에 그림을 그리기 위해이 코드가

private void ChkLiboData_ItemCheck(object sender, ItemCheckEventArgs e) 
    { 
     Refresh(); 
     try 
     { 
      foreach (DataClass d in ChkLiboData.CheckedItems) 
      { 
       if (d.r == null && d.g == null && d.b == null) 
       { 
        Random r = new Random(); 

        d.r = r.Next(0, 255); 
        d.g = r.Next(0, 255); 
        d.b = r.Next(0, 255); 

        DrawDiagram(d.DataList, (int)d.r, (int)d.g, (int)d.b); 
       } 
       else 
       { 
        DrawDiagram(d.DataList, (int)d.r, (int)d.g, (int)d.b); 
       } 
       Refresh(); 
      } 
     } 
     catch { } 
    } 

을하지만 디버그 모드에서와 내가 볼 수없는 ChkLiboData.CheckedItems 보았다 ChkLiboData.CheckedItems의 모든 항목. 나는 무엇을해야합니까 ???

+0

[CheckedListBox의 ItemChecked 이벤트 없음] 가능한 복제본 (http://stackoverflow.com/questions/4454058/no-itemchecked-event-in-a-checkedlistbox) –

답변

4

이벤트의 ItemCheck은 확인 된 항목의 상태가 인 경우 변경하려고 시도 할 때 발생합니다.. 이미 변경되지 않았습니다. 예를 들어 설명해 보겠습니다. CheckedListBox에는 "A", "B"및 "C"의 3 개 항목이 있습니다. 항목이 선택되어 있지 않습니다. 이제 사용자는 항목 "A"를 확인합니다. 이벤트 ItemCheck가 발생합니다. 속성 CheckedItems에는 항목이 없습니다. args e (유형이 ItemCheckEventArgs 인)에서 검사 상태가 변경되는 항목의 색인을 찾을 수 있습니다. 이전에 검사 상태가 포함 된 CurrentValue 속성과 새 검사 상태가 포함 된 NewValue 속성이 있습니다. 그런 다음 사용자가 항목 "B"를 확인하면 이벤트가 다시 발생합니다. 이번에는 속성 CheckedItems에 하나의 항목 "A"가 포함되어 있습니다. a.s.o.

BTW : ItemCheck 이벤트에서 NewValue 속성을 설정할 수 있습니다. 예를 들어 항목을 검사하지 못하도록합니다.

+0

그래서 어떻게해야합니까?!? –

+0

@ahmadalishafiee : 귀하의 의견에 따라 답변을 변경했습니다. – Fischermaen

+0

덕분에 많이 도움이되었습니다. –

관련 문제