目次

「色の設定」ダイアログボックスを表示する

「色の設定」ダイアログボックスを表示するコードを紹介します。

UI

下図のUIを準備します。Button,TextBox,ColorDialog,Panelを配置します。


ColorDialogは[ツールパレット]の[ダイアログ]カテゴリのColorDialogコントロールを選択し、フォームにドラッグ&ドロップします。

コード

以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Color
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      DialogResult dr = colorDialog1.ShowDialog();
      if (dr == System.Windows.Forms.DialogResult.OK) {
        //textBox1.Text = ColorTranslator.ToHtml(colorDialog1.Color);
        //textBox1.Text = colorDialog1.Color.ToString();
        textBox1.Text = string.Format("#{0:X2}{1:X2}{2:X2}", 
          colorDialog1.Color.R, colorDialog1.Color.G, colorDialog1.Color.B);

        panel1.BackColor = colorDialog1.Color;
      }
    }
  }
}

解説

DialogResult dr = colorDialog1.ShowDialog();
にて、[色の設定]ダイアログボックスを表示します。ダイアログボックスの操作結果はDialogResult型の戻り値で返されます。

if (dr == System.Windows.Forms.DialogResult.OK) {
  textBox1.Text = string.Format("#{0:X2}{1:X2}{2:X2}", 
    colorDialog1.Color.R, colorDialog1.Color.G, colorDialog1.Color.B);
  panel1.BackColor = colorDialog1.Color;
}
[色の設定]ダイアログボックスが[OK]ボタンで閉じられた場合は、テキストボックスにダイアログボックスで選択された色の"#RRGGBB"形式の文字列を表示します。また、パネルの背景色をダイアログボックスで選択された色に変更します。Color型の値を"#RRGGBB"形式の文字列に変換するコードの詳細についてはこちらの記事を参照してください。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


button1をクリックすると[色の設定]ダイアログボックスが表示されます。色を選択し[OK]ボタンをしてダイアログボックスを閉じます。


[OK]ボタンを押してダイアログボックスを閉じると、テキストボックスに[色の設定]ダイアログボックスで選択した色の"#RRGGBB"形式の文字列を表示します。また、パネルの背景色をダイアログボックスで選択した色に変更します。


著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2012-05-27
iPentec all rights reserverd.