【C#】フォントダイアログとカラーダイアログ

2021年4月9日

こんにちは、ノムノムです。

今回はフォントダイアログとカラーダイアログを紹介したいと思います。
といっても記事にする必要があるのかっていうくらい簡単なのでさらっと言ってしまおうと思います。

フォントダイアログ呼出し

/// <summary>
/// フォントダイアログを呼び出します
/// </summary>
/// <param name="font"></param>
/// <param name="font_color"></param>
/// <returns></returns>
private bool CallFontDialog(ref Font font, ref Color font_color)
{
    using (FontDialog dlg = new FontDialog())
    {
        dlg.Font = font;        //フォントの設定
        dlg.MaxSize = 24;       //選択できる最大フォントサイズ
        dlg.MinSize = 9;        //選択できる最小フォントサイズ
        dlg.ShowColor = true;   //フォントの色を指定できるようにするか
        dlg.Color = font_color; //フォントカラーの設定
        if (dlg.ShowDialog() == DialogResult.OK)
        {
            font_color = dlg.Color;     //フォントの色
            font = dlg.Font;            //フォント
            return true;
        }
    }
    return false;
}

注意する点としてフォントクラスの中には色を持っていません。
ですのでフォントの色情報を取得したい場合は別途変数を用意する必要があります。

実行

フォントダイアログボタンをクリックすると以下のロジックが走ります。

Font font = this.label1.Font;
Color font_color = this.label1.ForeColor;
//フォントダイアログ呼出し
if (CallFontDialog(ref font, ref font_color) == true)
{
    this.label1.Font = font;
    this.label1.ForeColor = font_color;
}

カラーダイアログ呼出し

カラーダイアログを呼び出す関数をいかに記載します。

/// <summary>
/// カラーダイアログを呼び出します。
/// </summary>
/// <param name="color"></param>
/// <returns></returns>
private bool CallColorDialog(ref Color color)
{
    using (ColorDialog dlg = new ColorDialog())
    {
        dlg.Color = color;  //ダイアログ初期表示カラーを設定

        if (dlg.ShowDialog() == DialogResult.OK)
        {
            color = dlg.Color;
            return true;
        }
    }

    return false;
}

単純にColorDialogクラスのインスタンスを作ってShowDialogで呼び出すだけですね。

実行

黄色を選択します。選んだ色をラベルの背景にセットすると以下のようになります。

Color color = this.label1.BackColor;

if (CallColorDialog(ref color) == true)
{
    this.label1.BackColor = color;
}

こうなります。簡単ですね。

まとめ

今回は、簡単なので記事にしようかも迷ったのですが、僕は簡単に感じてもそうでない人もいるかもしれない。ということで簡単ですが記事にしました。

C#の基本的なことはだいたい説明したかと思いますので、違うことも始めていきたいなと思っています。

ここまで読んで頂いてありがとございます。