0

3 状態の ToggleButton の既定のシーケンスは、オン、不確定、オフのようです。

これをオン、オフ、不確定に変更したいと思います。ここで提示された質問に似ています。

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 に答える