How to: Give Your Control a Transparent Background

By default, controls do not support transparent backcolors. However, you can allow your control to have a background color that is opaque, transparent, or partially transparent by using the SetStyle method in the constructor. The SetStyle method of the Control class allows you to set particular style preferences for your controls, and can be used to enable or disable support for transparent backcolors.

NoteNote

Windows Forms controls do not support true transparency. The background of a transparent Windows Forms control is painted by its parent.

To give your control a transparent backcolor

  1. Locate the constructor for your control class. The constructor appears in the control's code file. In C#, the constructor is the method with the same name as the control and with no return value. In Visual Basic, the constructor is the method named New.

  2. Call the SetStyle method of your form in the constructor.

    SetStyle(ControlStyles.SupportsTransparentBackColor, True)
    
    SetStyle(ControlStyles.SupportsTransparentBackColor, true);
    
    SetStyle(ControlStyles.SupportsTransparentBackColor, true);
    

    This will enable your control to support a transparent backcolor.

  3. Beneath the line of code you added in step 1, add the following line. This will set your control's BackColor to Transparent.

    Me.BackColor = Color.Transparent
    
    this.BackColor = Color.Transparent;
    
    this.set_BackColor(Color.get_Transparent());
    

    Note that you can also create colors that are partially transparent using the FromArgb method. For more information on colors, see Using Managed Graphics Classes.

See Also

Tasks

How to: Give Your Control a Transparent Background
How to: Draw Opaque and Semitransparent Lines
How to: Create Transparent Windows Forms

Reference

SetStyle
FromArgb

Other Resources

Developing Custom Windows Forms Controls with the .NET Framework
Using Managed Graphics Classes