似乎三态 ToggleButton 的开箱即用序列是 On、Indeterminate、Off。
我想将其更改为 On、Off、Indeterminate;类似于这里提出的问题。
我尝试修改我的 StateChanging 事件,但我认为这将导致无限循环。
似乎三态 ToggleButton 的开箱即用序列是 On、Indeterminate、Off。
我想将其更改为 On、Off、Indeterminate;类似于这里提出的问题。
我尝试修改我的 StateChanging 事件,但我认为这将导致无限循环。
我使用 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;
}
}