これを実行する方法はたくさんあります。これは、ボタンの変数に格納されている
- :ので、私として
は、私はおそらくControl
のTag
属性を使用します。あなたはすべてのコードは、あなたはいつも他のメソッドからアクセスすることができ、単一の方法
- に書き込むことができ
- 任意の外部変数を必要としません\ここ
を制御コード例は次のとおりです。
private void OrdersButton_Click(object sender, EventArgs e)
{
bool value = (OrdersButton.Tag as bool?) ?? true;
OrdersButton.Tag = !value;
OrdersButton.Text = "Turn Orders " + (value ? "On" : "Off");
}
また、デフォルトのTag
の値(trueまたはfalse)を設定し、ヌル値のチェックを削除することもできます。 また、常にそれをこのようにアクセスを行うことができるようになります:
public void DoSomeImportantThings()
{
var areOrdersTurnedOn = (bool)OrdersButton.Tag;
}
それが最善のアプローチではありません - それはちょうど別のものです。
例えば、Roman Gruberは、おそらく、セッターにカプセル化されたテキスト変更ロジックのプロパティを使用した場合の最良の答えを示しています。
[inline-if](http://en.wikipedia.org/wiki/%3F :)演算子を使用していることに注意してください。ちょうどFYI。 +1はきれいな1ライナーです。 – aqua
これはきちんとした1ライナーかもしれませんが、UIをローカライズするとすぐに、このアプローチはその面でフラットになります。 –
@Cody非常に真実、その問題に対処するために更新されました。 – MattW