0

似乎三态 ToggleButton 的开箱即用序列是 On、Indeterminate、Off。

我想将其更改为 On、Off、Indeterminate;类似于这里提出的问题。

我尝试修改我的 StateChanging 事件,但我认为这将导致无限循环。

4

1 回答 1

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;
    }
}
于 2013-05-07T12:48:14.623 回答