PR

C#buttonの使い方(ちょっと詳しく)

記事内に広告が含まれています。

備忘録兼ねてよく使いそうなプロパティについて記載します。
Marginなどの配置については書いていません。

以下ような画面でbutton1~3を変更させながら説明します。

Enable

ボタンの操作の可否を設定します。
Falseにするとグレーアウトし、クリックできなくなります。
未入力の項目があるときにクリックさせない場合や、別の処理をしているときにクリックされたくない場合に使います。

        private void Enable_True_Click(object sender, EventArgs e)
        {
            button1.Enabled = true;
            button2.Enabled = true;
            button3.Enabled = true;
        }

        private void Enable_False_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            button2.Enabled = false;
            button3.Enabled = false;
        }

Visible

ボタンの表示を変更します。
Falseにすると表示自体がされなくなります。

        private void Visible_True_Click(object sender, EventArgs e)
        {
            button1.Visible = true;
            button2.Visible = true;
            button3.Visible = true;
        }

        private void Visible_False_Click(object sender, EventArgs e)
        {
            button1.Visible = false;
            button2.Visible = false;
            button3.Visible = false;
        }

AutoSize、AutoSizeMode

AutoSizeでボタンのサイズを自動で調整するか設定します。
Trueの場合、自動でボタンのサイズが調整されます。Falseの場合は変更しません。
AutoSizeModeでサイズを大きくするだけか、小さくもするかを設定します。
GrowAndShrinkを設定した場合、ボタンがテキストに合わせ縮小します。

自動調整しない場合、見切れる可能性があります。

自動調整する場合、表示テキストに合わせてサイズが変わりますが、ほかのコントロールと重なる場合があるため注意が必要です。

AutoSizeModeにGrowAndShrinkを設定するとテキストに合わせ小さくもなります。

コントロールのサイズが変わると使いにくい場面もあると思いますので、デザインにより使い分けが必要です。個人的にはあまり自動調整は使用しません。

        private void AutoSize_True_Click(object sender, EventArgs e)
        {
            button1.AutoSize = true;
            button2.AutoSize = true;
            button3.AutoSize = true;
        }

        private void AutoSize_False_Click(object sender, EventArgs e)
        {
            button1.AutoSize = false;
            button2.AutoSize = false;
            button3.AutoSize = false;
        }

        private void GrowOnly_Click(object sender, EventArgs e)
        {
            button1.AutoSizeMode = AutoSizeMode.GrowOnly;
            button2.AutoSizeMode = AutoSizeMode.GrowOnly;
            button3.AutoSizeMode = AutoSizeMode.GrowOnly;
        }

        private void GrowAndShrink_Click(object sender, EventArgs e)
        {
            button1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
            button2.AutoSizeMode = AutoSizeMode.GrowAndShrink;
            button3.AutoSizeMode = AutoSizeMode.GrowAndShrink;
        }

BackColor

ボタンの背景色を設定します。
デザイナからプロパティ値を見るとSystemColors.Controlが設定されているように見えますが、実際に設定してみるとFormの背景色と同じ色になります。

元のボタンの背景色にするにはSystemColors.Windowを設定します。

Colorも設定できるので、例えばColor.Redで赤色とすることもできます。

        private void Control_Click(object sender, EventArgs e)
        {
            button1.BackColor = SystemColors.Control;
            button2.BackColor = SystemColors.Control;
            button3.BackColor = SystemColors.Control;
        }

        private void Window_Click(object sender, EventArgs e)
        {
            button1.BackColor = SystemColors.Window;
            button2.BackColor = SystemColors.Window;
            button3.BackColor = SystemColors.Window;
        }

        private void Red_Click(object sender, EventArgs e)
        {
            button1.BackColor = Color.Red;
            button2.BackColor = Color.Red;
            button3.BackColor = Color.Red;
        }

ForeColor

ボタンのテキストの色を設定します。
Color.Blueを設定した例です。

        private void ControlText_Click(object sender, EventArgs e)
        {
            button1.ForeColor = SystemColors.ControlText;
            button2.ForeColor = SystemColors.ControlText;
            button3.ForeColor = SystemColors.ControlText;
        }

        private void Blue_Click(object sender, EventArgs e)
        {
            button1.ForeColor = Color.Blue;
            button2.ForeColor = Color.Blue;
            button3.ForeColor = Color.Blue;
        }

TextAlign

ボタンのテキストの表示位置を変更します。
左上を指定する場合はTopLeftとなります。

        private void MiddleCenter_Click(object sender, EventArgs e)
        {
            button1.TextAlign = ContentAlignment.MiddleCenter;
            button2.TextAlign = ContentAlignment.MiddleCenter;
            button3.TextAlign = ContentAlignment.MiddleCenter;
        }

        private void TopLeft_Click(object sender, EventArgs e)
        {
            button1.TextAlign = ContentAlignment.TopLeft;
            button2.TextAlign = ContentAlignment.TopLeft;
            button3.TextAlign = ContentAlignment.TopLeft;
        }

FlatStyle

ボタンの表示スタイルを変更します。
カーソルがボタン上にある場合の表示にも影響します。
Flatの場合、マウスカーソルが上にあると色が濃くなります。

Popupの場合、マウスカーソルが上にあると立体表示になります。

Standardは規定値の表示で青みがかります。
Systemもほぼ同様ですが、OSに左右されるようです。そのためあまり使うべきではないかと思います。

タイトルとURLをコピーしました