2012-03-22 2 views
3

나는 쉽게 그 질문을하는 것처럼 보일 수 있지만 해결책을 찾을 수는 없다는 것을 알고 있습니다. 내 양식에 CheckdListBox 있습니다. 안에 체크 박스 목록이 있습니다. 그럴 경우 : clbxMyControl.Enabled = false; 모든 항목을 보려면 스크롤 할 수 없습니다. 비활성화 된 CheckedListBox에서 스크롤하는 것을 허용하는 방법?CheckedListBox를 비활성화하고 스크롤하는 WinForms를 활성화하는 방법

감사합니다. 대신 당신이 그것을 변경해야 컨트롤을 비활성화

답변

3

:

bool listEnabled = true; 

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

를하지만 검사가 더 이상 작동하는지 분명하지 있는지 확인 않습니다

private void setListEnabled(bool enabled) { 
     listEnabled = enabled; 
     if (listEnabled) checkedListBox1.BackColor = Color.FromKnownColor(KnownColor.Window); 
     else checkedListBox1.BackColor = Color.FromKnownColor(KnownColor.Control); 
    } 
+1

CheckdListBox에서 확인란의 레이블 색상을 변경하는 방법을 알고 계십니까? – Radislav

+1

질문하기 버튼을 클릭하십시오. –

12

이 같은 SelectionMode입니다 :

checkedListBox1.SelectionMode = SelectionMode.None; 

사용자가 항목을 선택할 수 없습니다하지만

+0

이미 사용하려고했다 선택 모드 속성. 그것은 나를 위해 작동하지 않습니다. 나는 그것을 아무에게도 설정하지 않고 결코 변화시키지 않는다. – Radislav

+0

예외가 있습니다 - CheckedListBox에서는 다중 선택이 지원되지 않습니다. – Radislav

+1

checkedListBox1.SelectionMode = SelectionMode.One; – ionden

1

당신은이 코드를 사용하여 스크롤 허용됩니다 CheckedListBox를 스크롤 가능하게합니다.

clbxMyControl.SelectionMode = SelectionMode.None; 

왜냐하면 Enable = false; 체크 박스의 컨테이너를 무효로하기 때문에, 컨트롤을 스크롤 할 수 없게한다.

+0

나는 가지고있다 이미 선택 모드 속성을 사용하려고 시도했습니다. 그것은 나를 위해 작동하지 않습니다. 아무도 설정하지 및 절대로 변경하십시오. – Radislav

1

ListBox에는 Windows API에서 사용 또는 사용 안 함으로 설정된 핸들이 하나만 있습니다. 따라서 스크롤을 가능하게하는 고유 한 방법은 없지만 항목은 있습니다.

요청한 동작이있는 자체 컨트롤을 만들 수도 있지만 작업을 많이 수행 할 수있는 처음부터 직접 그리거나 해당 동작을 지원하는 타사 컨트롤을 찾아야합니다.

또는 당신은 비활성화 보이게하고 설정하려면 enabled 속성을 사용하지만 배경/글꼴 색상을 변경할 수 없습니다 :

checkedListBox1.SelectionMode = SelectionMode.None; 

또 다른 대안이있는 DataGridView 수 있습니다. 훨씬 강력합니다. 스크롤바를 사용할 수 없는지 확실하지 않지만, 그렇다면 셀을 읽기 전용으로 만들어 색상을 지정할 수 있습니다.

당신은 ItemCheck 이벤트와 아이템 확인에서 사용자를 방지 할 수 있습니다
+0

이미 선택 모드 속성을 사용하려고했습니다. 그것은 나를 위해 작동하지 않습니다. – Radislav

관련 문제