1 out of 5 rated this helpful - Rate this topic

Control.BackColor Property

Gets or sets the background color for the control.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
public virtual Color BackColor { get; set; }

Property Value

Type: System.Drawing.Color
A Color that represents the background color of the control. The default is the value of the DefaultBackColor property.

The BackColor property does not support transparent colors unless the SupportsTransparentBackColor value of System.Windows.Forms.ControlStyles is set to true.

The BackColor property is an ambient property. An ambient property is a control property that, if not set, is retrieved from the parent control. For example, a Button will have the same BackColor as its parent Form by default. For more information about ambient properties, see the AmbientProperties class or the Control class overview.

Notes to Inheritors

When overriding the BackColor property in a derived class, use the base class's BackColor property to extend the base implementation. Otherwise, you must provide all the implementation. You are not required to override both the get and set accessors of the BackColor property; you can override only one if needed.

The following code example sets the BackColor and ForeColor of the controls to the default system colors. The code recursively calls itself if the control has any child controls. This code example requires that you have a Form with at least one child control; however, a child container control, like a Panel or GroupBox, with its own child control(s) would better demonstrate the recursion.


// Reset all the controls to the user's default Control color. 
private void ResetAllControlsBackColor(Control control)
{
   control.BackColor = SystemColors.Control;
   control.ForeColor = SystemColors.ControlText;
   if(control.HasChildren)
   {
      // Recursively call this method for each child control.
      foreach(Control childControl in control.Controls)
      {
         ResetAllControlsBackColor(childControl);
      }
   }
}


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Automatically sets .UseVisualStyleBackColor to FALSE
Setting .BackColor also automatically sets .UseVisualStyleBackColor to FALSE. This will need to be reset to TRUE when appropriate for the button to return to its "shiny" appearance.

  Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
    Dim blnUseVisualStyleBackColor_Orig As Boolean = Button3.UseVisualStyleBackColor
    Dim clrBackColor_Orig As Color = Button3.BackColor
    Button3.BackColor = Color.Red 'N.B. setting .BackColor also sets .UseVisualStyleBackColor to False!
    Button3.Refresh()
    Dim dte As Date = Now
    Do
    Loop Until (Now - dte).TotalSeconds > 5
    Button3.BackColor = clrBackColor_Orig
    Button3.UseVisualStyleBackColor = blnUseVisualStyleBackColor_Orig
  End Sub
.
.