【C#】ColorDialogでユーザに色を指定させる(+ユーザが作成した色を記憶)

C#

この記事では、ColorDialogコントロールを使用して以下の処理を行うサンプルを掲載します。

・ユーザに色を指定させる
・ユーザが作成したカスタム色を記憶
・ユーザが作成したカスタム色を再度表示

細かい部分は調整して自分の作りたい動作にしてください。

準備

フォームにコントロールを配置してください。

・ボタン1つ(button1)

サンプルコード

ボタンのイベントハンドラを作成して下記処理を転記してください。
各処理の説明はコメントを参照ください。

using System;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        int[] CustomColors;

        public Form1()
        {
            InitializeComponent();

            // カスタム色の初期値の設定例(ここでは赤、緑、青の明るい色を設定)
            CustomColors = new int[] { 0x00FF0000, 0x0000FF00, 0x000000FF };
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // ColorDialogのインスタンスを作成
            using (ColorDialog colorDialog = new ColorDialog())
            {
                // 初期色の設定
                colorDialog.Color = this.BackColor;

                // カスタム色の設定
                colorDialog.CustomColors = CustomColors;

                // ColorDialogを表示
                if (colorDialog.ShowDialog() == DialogResult.OK)
                {
                    // 選択された色でフォームの背景色を変更
                    this.BackColor = colorDialog.Color;
                }

                // ダイアログでユーザーが作成したカスタム色を取得(保存や次回の使用のため)
                CustomColors = colorDialog.CustomColors;
            }
        }
    }
}

実行結果

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