2012-06-22 2 views
3

일부 이름이 포함 된 Checkedlistbox로 winforms 응용 프로그램을 만들고 있습니다. 내가 필요로하는 것은 체크 박스를 클릭하여 체크하지 못하게하는 것이지만 여전히 코드에서 체크 할 수 있어야합니다.체크리스트 체크 박스를 클릭하면 해제되지만 뒤에 코드는 사용하지 마십시오

.CheckOnClick을 false로 설정하려고 시도했지만 두 번째 클릭이 계속 표시됩니다. 옵션이 비활성화됩니다되지 않은 전체 상자를 비활성화

.. How to disable a checkbox in a checkedlistbox? 하지만이뿐만 아니라 코드에서 확인하는 기능을 비활성화 결과 :

나는 다음과 같은 질문에서 솔루션을 시도했습니다 내 응용 프로그램에서 중요한 선택 및 doublemouseclick을 포함한 모든 이벤트.

이 문제를 해결할 수있는 사람은 누구입니까?

답변

3

좋아, 당신과 같이 당신의 CheckedListBox의 ItemCheck 이벤트를 처리하기 만하면 무엇 :

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) 
{ 
    e.NewValue = e.CurrentValue; 
} 

당신이 원하는 경우 코드에서 확인란의 상태를 변경하면 이벤트 핸들을 일시적으로 제거해야합니다.

checkedListBox1.ItemCheck -= checkedListBox1_ItemCheck; 
checkedListBox1.SetItemChecked(1, true); 
checkedListBox1.ItemCheck += checkedListBox1_ItemCheck; 

우아한 것은 아니지만 가능한 해결책입니다.

관련 문제