2016-10-18 3 views
0

Winforms를 사용하고 있으며 확인란에서 불확정 상태를 검색하는 데 문제가 있습니다. 항상 체크 박스에서 불확정 상태 가져 오기 Winforms

내가 양식 부하가 때 불확정에 체크 박스를 설정하려면이 코드를 사용하여 ... "선택 해제"를 반환 :

checkBox.CheckState = CheckState.Indeterminate; 

가 작동합니다.

그런 다음 체크 박스를 클릭하면 "CheckedChanged"이벤트가 실행되고 상태가 불확실한 경우 아무 작업도 수행하지 않습니다. 그러나 확인란이 "불확정"으로 표시되어있는 동안 내가 체크 박스 상태를 검색하려고 어떻게 여기

입니다 .. 상태 "선택 해제"를 반환 : 나는 WPF하지만 난 제외하고 해결책을 찾을 수 없습니다

CheckBox c = sender as CheckBox; 
    if (c.CheckState == CheckState.Indeterminate) 
     { 
      MessageBox.Show("Nope"); 
     } 

을 Winforms를 사용하십시오 ..

나를 도와 주셔서 감사합니다.

+1

'ThreeState' 속성이 'true'로 설정되어 있습니까? – Equalsk

+0

그래, 그것은 indeterminate 값이 false로 설정 3 상태 확인란의 첫 번째 클릭 소리. 처음 클릭 할 때 true로 설정하려면 기본값이 false 인 두 상태 체크 박스를 사용해보십시오. –

답변

1

ThreeState 속성을 true으로 설정하여 CheckBox 컨트롤을 추가했습니다.
에서 나는 동일한 방법으로 CheckStateCheckState.Indeterminate으로 설정했습니다.
CheckBox에서 CheckStateChanged 이벤트를 구독했습니다.

나는이 같은 checkState에는 얻을 수 있습니다

private void CheckStateChanged(object sender, EventArgs e) 
{ 
    var checkbox = sender as CheckBox; 

    switch (checkbox.CheckState) 
    { 
     case CheckState.Checked: 
      MessageBox.Show("Checked"); 
      break; 
     case CheckState.Unchecked: 
      MessageBox.Show("Unchecked"); 
      break; 
     case CheckState.Indeterminate: 
      MessageBox.Show("Indeterminate"); 
      break; 
     default: 
      MessageBox.Show("Nothing"); 
      break; 
    } 
} 

분명히 대신 메시지 박스 당신은 당신의 코드를 가지고있다.

+0

예, CheckStateChanged 대신 CheckChanged를 사용했으며 threeState 속성이 true로 설정되지 않았습니다. 나는 당신의 코드를 사용했고 효과가 있었다! 감사 –

관련 문제