ControlPaint Class

Provides methods used to paint common Windows controls and their elements. This class cannot be inherited.

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

Public NotInheritable Class ControlPaint
Dim instance As ControlPaint

public final class ControlPaint
public final class ControlPaint
Not applicable.

The methods contained in the ControlPaint class enable you to draw your own controls or elements of controls. You can control the drawing of your own controls if the UserPaint bit is set to true for the control. You can get or set the style bits by calling the GetStyle or SetStyle methods. You can set multiple style bits for any control. The ControlStyles enumeration members can be combined with bitwise operations.

The following code example uses one of the ControlPaint constructors to draw a flat Button control.

Imports System
Imports System.Drawing
Imports System.Windows.Forms

    Public Class Form1
        Inherits System.Windows.Forms.Form

        Private button1 As System.Windows.Forms.Button = New Button
        Private button2 As System.Windows.Forms.Button = New Button

        <System.STAThreadAttribute()>  _
        Public Shared Sub Main()
            System.Windows.Forms.Application.Run(New Form1)
        End Sub

        Public Sub New()
            Me.button2.Location = New Point(0, button1.Height + 10)
            AddHandler Me.button2.Click, AddressOf Me.button2_Click
        End Sub

        Private Sub button2_Click(sender As Object, e As System.EventArgs)
            ' Draws a flat button on button1.
            ControlPaint.DrawButton(System.Drawing.Graphics.FromHwnd(button1.Handle), 0, 0, button1.Width, button1.Height, ButtonState.Flat)
        End Sub 'button2_Click
End Class

import System.*;
import System.Drawing.*;
import System.Windows.Forms.*;

public class Form1 extends Form
    private Button button1 = new Button();
    private Button button2 = new Button();

    /** @attribute STAThread()
    public static void main(String[] args)
        Application.Run(new Form1());
    } //main

    public Form1()
        this.button2.set_Location(new Point(0, button1.get_Height() + 10));
        this.add_Click(new EventHandler(this.button2_Click));
    } //Form1

    private void button2_Click(Object sender, System.EventArgs e)
        // Draws a flat button on button1.
            button1.get_Handle()), 0, 0, button1.get_Width(), 
            button1.get_Height(), ButtonState.Flat);
    } //button2_Click
} //Form1


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

Community Additions