2013-05-06 89 views
0

三態ToggleButton的開箱序列似乎爲On,Indeterminate,Off。在三態ToggleButton上更改狀態序列

我想將其更改爲On,Off,Indeterminate;類似於提出的問題here

我試着修改我的StateChanging事件,但我認爲這將導致無限循環。

回答

0

我簡單地實現了一個使用ToggleStateChanging的工作解決方案來改變狀態的順序,然後使用全局變量來避免無限循環。然而,然後我有一個新的問題,ToggleButton有一些自動主題,每個狀態和MouseHover都有不同的陰影。我不想要那個主題,所以我最終只是將按鈕更改爲標準按鈕,現在我使用按鈕的Tag屬性來模擬ToggleState。

我特別的解決方案使用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; 
    } 
}