2010-01-09 4 views
2

CheckedListBox 기본 동작을 재정의해야합니다.C# CheckedListBox 재정의

CheckedListBox에 코드를 연결하지 않고 체크 표시하거나 선택 취소 할 수 있습니다.

사용자 지정 코드를 구현할 수 있도록이 동작을 해제해야합니다.

어떤 아이디어가 있습니까?

감사합니다. .

(거짓 0)

(ListenCheckedListBox.GetItemChecked (0)) { ListenCheckedListBox.SetItemChecked 경우; }

경우 { ListenCheckedListBox.SetItemChecked (0, TRUE) (ListenCheckedListBox.GetItemChecked (0)!); }

컨트롤의 기본 동작이 이미이 작업을 수행하기 때문에 작동하지 않습니다.

이제 내 문제를 이해하시기 바랍니다.

+0

어? 이 질문에 대해 더 명확히하실 수 있습니까? –

+0

OP는 체크 박스의 기본 체크 토글 동작을 삭제하려고한다고 생각합니다. –

+0

코드를 사용하지 않고 CheckedListBox의 체크 상태를 토글 할 수 있습니다 (클릭만으로 가능/불가능). 코드에서이 작업을 수행하면 체크 상태 만 변경되므로이 동작을 보완해야합니다. – iTEgg

답변

0

좋습니다. 알아 냈습니다. 나는 그것을 잘못보고 있었다. 방금 두 번 정의하는 대신 선택 상태를 처리합니다. 한번은 제게 두 번째 컨트롤입니다.

예 나는 어리 석 었습니다!

0

내장 클래스에서 상속하고 관련 메서드를 재정 의하여 사용자 지정 CheckedListBox를 만들 수 있습니다.

사용자가 질문을 이해하기 때문에 사용자가 클릭 할 때 항목을 선택하지 않으려면 코드에서 선택 영역을 완전히 제어해야합니다.

이 작업을 수행하려면 OnItemCheck 방법을 무시하고, 설정되는 새로운 값을 제어 할 수 있습니다

public class CheckedListBoxEx : CheckedListBox 
{ 
    protected override void OnItemCheck(ItemCheckEventArgs ice) 
    { 
     ice.NewValue = ice.CurrentValue; 
    } 
} 

이 또한 단순히 ItemCheck 이벤트를 처리하여 수행 할 수 있습니다.

+0

재미있을 것 같습니다. 내 초심자 그래서 내 질문은 어떻게 내가 언급 한 일을합니까? 내가 그것을 작동시키려는 방식으로 작동하도록 재정의해야하는 방법을 어떻게 찾을 수 있습니까? – iTEgg

+0

아니 그게 내가 조용한 조용한. 나는 또한 그 값을 클릭하고 설정할 수 있기를 원한다. 코딩을하지 않고 마우스 클릭에 따라 확인 된 값을 토글하는 기본 클래스의 함수를 재정의해야합니다. 코드가 두 번 실행되기 때문입니다. 한 번 내가 코드에서 상태를 업데이트하고 두 번째로 컨트롤의 기본 동작도 토글합니다. – iTEgg