ColorDialog.SolidColorOnly Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets or sets a value indicating whether the dialog box will restrict users to selecting solid colors only.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public virtual bool SolidColorOnly { get; set; }

Property Value

Type: System.Boolean

true if users can select only solid colors; otherwise, false. The default value is false.

This property is applicable to systems with 256 or fewer colors. On these types of systems, some colors are composites of others.

The following code example demonstrates initializing a ColorDialog setting the AnyColor, AllowFullOpen properties. The ColorDialog does not enable the user to set a custom color, but it enables the full set of basic colors be displayed. When you set the SolidColorOnly property to false, it enables the display of colors that are combinations of other colors on systems with 256 or less colors. The example also shows setting the ShowHelp property and handling a HelpRequest event for a dialog box. To run the example, paste the following code in a form and call the InitializeColorDialog method in the form's constructor or Load method. This example requires the Click event of the button is connected to the event-handler method defined in the example.

// This method initializes ColorDialog1 to allow any colors, 
// and combination colors on systems with 256 colors or less, 
// but will not allow the user to set custom colors.  The
// dialog will contain the help button.
private void InitializeColorDialog()
	this.ColorDialog1 = new System.Windows.Forms.ColorDialog();
	this.ColorDialog1.AllowFullOpen = false;
	this.ColorDialog1.AnyColor = true;
	this.ColorDialog1.SolidColorOnly = false;
	this.ColorDialog1.ShowHelp = true;

	// Associate the event-handling method with
	// the HelpRequest event.
		+= new System.EventHandler(ColorDialog1_HelpRequest);

// This method opens the dialog and checks the DialogResult value. 
// If the result is OK, the text box's background color will be changed 
// to the user-selected color.
private void Button1_Click(System.Object sender, System.EventArgs e)
	DialogResult result = ColorDialog1.ShowDialog();
	if (result.Equals(DialogResult.OK))
		TextBox1.BackColor = ColorDialog1.Color;

// This method is called when the HelpRequest event is raised, 
//which occurs when the user clicks the Help button on the ColorDialog object.
private void ColorDialog1_HelpRequest(object sender, System.EventArgs e)

	MessageBox.Show("Please select a color by clicking it. "
          + "This will change the BackColor property of the TextBox.");

.NET Framework
Available since 1.1
Return to top