2014/05/03

【C#】Windowsフォームでトグルボタンを実装する

トグルボタンとは、押したらへこみっぱなし。もう一回押したら元に戻る。
そんなボタン。

しかし、Windowsフォームに“トグルボタンという名前”では用意されていない。
というのはCheckBoxやRadioButtonをトグルボタンとして使用できるからだ。


上図のようにCheckBox、またはRadioButtonを用意する。
そしてプロパティのAppearanceを「Normal」→「Button」に変更する。

すると、、、なんということでしょう!!


あっという間にトグルボタンの出来上がり!




ボタンの見た目を修正する



ただ、デフォルトのままだとボタンサイズが勝手に変わったり、他のボタンとサイズが合わなかったりと気持ち悪い。

そこでプロパティのAutoSizeを「True」→「False」に変更。
プロパティSizeでボタンサイズを調整。
プロパティTextAlignを「MiddleCenter」に変更。

したものが下図になる。




ボタンをひと工夫



トグルボタンを押したときにテキストを変えたいならCheckedChangedイベントを使えば簡単!

※イベントの追加は、フォーム上のボタン(元CheckBoxや元RadioButton)をダブルクリックすると勝手に生成される。


// トグルボタンのテキストを変える
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    CheckBox chkBox = (CheckBox)sender; 

    if (chkBox.Checked)
    {
        chkBox.Text = "OFF";
    }
    else
    {
        chkBox.Text = "ON";
    }
}

オブジェクトの指定はthis.checkBox1とかでもできるが、オブジェクトの名前を変えた時に影響が大きくなってしまうので、senderを使おう!
※senderはイベントを発生させたオブジェクト(ここではcheckBox1)が入っている。




以上

0 件のコメント :

コメントを投稿