Introduction:
This article describes a quick and simple approach to creating gradient panel custom control. In this example, the standard Windows Forms panel container control is extended to provide a persistent gradient background; this differs from using an approach where a gradient background is created dynamically against the graphics context of the panel. Even though the background is persistent, it is dynamically updated whenever it is resized. Figure 1 illustrates the control in use:

Figure 1. Gradient Panel Control in Use
Getting Started:
In order to get started, start up the Visual Studio 2005 IDE and open the included project. The solution consists of a Win Forms project with a single form and a single custom control included. The form is used as a test bed for the custom control and the custom control is an extension of the standard windows forms panel control. Figure 2 shows the solution explorer for this project:

Figure 2. Solution Explorer
The Code: Main Form
The main form of the application does not contain any meaningful code; the form itself contains two instances of the gradient panel control and the gradient panel control is configured through the property editor for the purposes of the control test.
As the main form is trivial; I will not describe any further in this document.
The Code: Gradient Panel Control
The Gradient Panel control is a custom control built to extend the standard Windows Forms Panel control; the only additions made to the standard control are those required to render the gradient background at run time.
If you open the code up and examine the imports, you will note following imports prior to the namespace and class declaration.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Windows.Forms;
namespace GradientPanel
{
public partial class GradientPanel : System.Windows.Forms.Panel
{
// member variables
System.Drawing.Color mStartColor;
System.Drawing.Color mEndColor;
public GradientPanel()


Thawatchai JidsodsaiPosted Oct 13, 2010, 2:41 PM
Thank You very much
Ronita BosePosted Aug 18, 2010, 7:20 AM
A very good example on gradient in winforms!