三态ToggleButton的开箱即用序列似乎是On,Indeterminate,Off。
我想将此更改为On,Off,Indeterminate;类似于提出的问题here。
我已尝试修改StateChanging事件,但我认为这会导致无限循环。
答案 0 :(得分: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;
}
}