3 状態の ToggleButton の既定のシーケンスは、オン、不確定、オフのようです。
これをオン、オフ、不確定に変更したいと思います。ここで提示された質問に似ています。
StateChanging イベントを変更しようとしましたが、無限ループになると思います。
3 状態の ToggleButton の既定のシーケンスは、オン、不確定、オフのようです。
これをオン、オフ、不確定に変更したいと思います。ここで提示された質問に似ています。
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;
}
}