2011-12-12 2 views
2

도움이 필요하며 벽에 머리를 때리고 있습니다. tri-state CheckedListBox을 사용하는 응용 프로그램이 있습니다. 나는 특정 목적을 위해 세 가지 상태를 사용CheckedListBox에 마우스로 불확정 상태를 설정하십시오.

검사 수단 기술이 체크되지는 기술이 불확정이 필요했기 때문에 기술이 작업을 수행하지 않은 것을 의미 작업을 수행하지 않았 음을 의미 조치 을 수행 하였다.

필요에 따라 선택 함에서 선택하지 않음에서 확인하지 않음으로 마우스를 전환 할 수 있어야합니다. CheckBoxThreeStateTrue으로 설정 한 경우 이것이 정확히 발생하지만 CheckedListBox의 불확정 상태를 설정하는 유일한 방법은 코드를 통과하는 것입니다.

누군가 나에게 무엇을 할 지 아이디어를 줄 수 있습니까? 그것은 당신이 할 수있는 것처럼 설정할 수있는 속성이 아니라는 것을 내 마음 속으로 생각합니다. CheckBox.

나는 아무도이 기능을 필요로하지 않는다고 생각합니다. Google에서 어떤 방법으로이 작업을 수행할지 또는 질문하는 방법에 대해서는 아무 것도 발견하지 못했습니다.

답변

5

내가이 동작을 제어 할 수있는 컨트롤의 속성이 있다고 생각하지 않는다,하지만 코드에서 구현하기 쉽습니다 :

void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) 
    { 
     switch (e.CurrentValue) 
     { 
      case CheckState.Checked: 
       e.NewValue = CheckState.Unchecked; 
       break; 

      case CheckState.Indeterminate: 
       e.NewValue = CheckState.Checked; 
       break; 

      case CheckState.Unchecked: 
       e.NewValue = CheckState.Indeterminate; 
       break; 
     } 
    } 
+0

죄송합니다. C# 스레드에 대한 질문에 답변 해 주셨습니다. VB 질문은 잊어 버렸습니다. btw : 스택 오버플로 환영. 답변을 통해 질문을 푸는 데 도움이된다면 체크 표시와 그 옆에있는 화살표를 클릭해야합니다. 그러면이 질문에 대한 향후 방문자가 이것이 도움이된다는 것을 알 수 있습니다. –

+0

문제는 없지만 VB로 번역했습니다. 고맙습니다. 나는 이것에 화살을 올렸지 만 사이트는 아직 나를 좋아하지 않는다. 더 많은 Rep 필요 :-) – TxDeadhead

0

내가

을 VB로 C#을에서 제공하는 제안을 다음하여 번역으로
Private Sub CheckedListBoxCriteria_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles CheckedListBoxCriteria.ItemCheck 

Select Case e.CurrentValue 
    Case CheckState.Checked 
     e.NewValue = CheckState.Unchecked 
     Exit Select 

    Case CheckState.Indeterminate 
     e.NewValue = CheckState.Checked 
     Exit Select 

    Case CheckState.Unchecked 
     e.NewValue = CheckState.Indeterminate 
     Exit Select 
    End Select 
End Sub 

매력처럼 작동했습니다. 나는 그와 비슷한 것을 시도했다고 맹세했을 지 모르지만 나는 제대로하지 못했습니다. 그러나 이것은 효과가있었습니다. 너무 감사합니다. 아주 간단합니다. 언젠가 이걸 알아낼거야. 나 자신을 가르치는 것은 아이디어를 내고 단서를 찾을 때까지 파고 들기로 구성됩니다.

관련 문제