2013-05-06 2 views
0

3 상태 ToggleButton의 기본 시퀀스가 ​​On, Indeterminate, Off 인 것으로 보입니다.3 상태 ToggleButton에서 상태 시퀀스 변경

이 설정을 On, Off, Indeterminate로 변경하고 싶습니다. 질문 [here]과 비슷합니다.

StateChanging 이벤트를 수정하려고했지만 무한 루프가 발생합니다.

답변

0

ToggleStateChanging을 사용하여 상태 순서를 변경 한 다음 전역 변수를 사용하여 무한 루프를 피하는 간단한 솔루션을 구현했습니다. 그러나 ToggleButton에는 각 상태와 MouseHover에서 다르게 음영 처리 된 일종의 자동 테마가있는 새로운 문제가 발생했습니다. 나는 그 테마를 원하지 않았기 때문에 궁극적으로 단추를 표준 단추로 변경했습니다. 이제 ToggleState를 에뮬레이트하기 위해 단추의 Tag 속성을 사용하고 있습니다.

내 특정 솔루션은 Telerik RadButton을 사용하지만 이는 WinForm의 표준 단추에도 적용됩니다.

private void myButton_Click(object sender, EventArgs e) 
{ 
    RadButton myButton = (RadButton)sender; 

    switch (myButton.Tag.ToString()) 
    { 
     case "Indeterminant": 
      myButton.Tag = "On"; 
      break; 
     case "On": 
      myButton.Tag = "Off"; 
      break; 
     case "Off": 
      myButton.Tag = "Indeterminant"; 
      break; 
     default: 
      break; 
    } 
}