ColorDialog

The ColorDialog control in Windows Forms .NET provides a way to display the standard operating system color selection window. By using the ColorDialog, you can enable a visual interface for selecting a specific color; some options are provided through properties on this control.

This C# tutorial shows how to use the ColorDialog control in Windows Forms.

ColorDialog screenshot

Example

To begin, we will add the ColorDialog instance to the form and then use it in some C# code. Most of the work you do with the ColorDialog will require the ShowDialog method and also the Color property. When you invoke ShowDialog, please remember to check the DialogResult; you do not want to take an action when the dialog was canceled.

Example that uses ColorDialog control [C#]

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
	public Form1()
	{
	    InitializeComponent();
	}

	private void Form1_Load(object sender, EventArgs e)
	{
	    // Show the color dialog.
	    DialogResult result = colorDialog1.ShowDialog();
	    // See if user pressed ok.
	    if (result == DialogResult.OK)
	    {
		// Set form background to the selected color.
		this.BackColor = colorDialog1.Color;
	    }
	}
    }
}

Description. In this code, we show the ColorDialog instance, and then see if the user clicked the OK button to accept. If OK was clicked, the parent form's background color is set to the color selected in the dialog.

AllowFullOpen and FullOpen properties

The ColorDialog allows you to open a more complete color picker to the right side with a button by default. If AllowFullOpen is set to False, this button is disabled. If FullOpen is set to True, the full color picker is shown automatically when the ColorDialog is opened.

AnyColor and SolidColorOnly properties

These two properties are provided on the ColorDialog, but I could not detect any difference in behavior when they were set to True or False. It is possible that patterns were once available in the ColorDialog, and these properties could have been used to disable those patterns. There is truly a limit to Dot Net Perls and its knowledge.

CustomColors property

Color type

You can acquire the custom colors in the ColorDialog that were added by the user; additionally, you can add your own colors there programmatically. This is an integer array, which means you can convert those integers into Color types if necessary. Currently, there is no example of this on this website.

Color Examples

Summary

Probably one of the simplest controls to add to your program, the ColorDialog provides the necessary functionality of a visual color picker. There are only a few useful properties on this control, with the most important being the Color property. Typically, it is not worth your time to develop a custom color widget unless you are working on a graphics-oriented program.

Windows Forms
.NET