Export (0) Print
Expand All

ButtonRenderer.DrawButton Method (Graphics, Rectangle, String, Font, Boolean, PushButtonState)

Draws a button control in the specified state and bounds, with the specified text, and with an optional focus rectangle.

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

public static void DrawButton(
	Graphics g,
	Rectangle bounds,
	string buttonText,
	Font font,
	bool focused,
	PushButtonState state
)

Parameters

g
Type: System.Drawing.Graphics

The Graphics used to draw the button.

bounds
Type: System.Drawing.Rectangle

The Rectangle that specifies the bounds of the button.

buttonText
Type: System.String

The String to draw on the button.

font
Type: System.Drawing.Font

The Font to apply to buttonText.

focused
Type: System.Boolean

true to draw a focus rectangle on the button; otherwise, false.

state
Type: System.Windows.Forms.VisualStyles.PushButtonState

One of the PushButtonState values that specifies the visual state of the button.

If visual styles are enabled in the operating system and visual styles are applied to the current application, this method will draw the button with the current visual style. Otherwise, it will draw the button with the classic Windows style.

The following code example uses the DrawButton(Graphics, Rectangle, String, Font, Boolean, PushButtonState) method in a custom control's OnPaint method to draw a button in the state determined by the location of the mouse pointer. This code example is part of a larger example provided for the ButtonRenderer class.

// Draw the large or small button, depending on the current state. 
protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    // Draw the smaller pressed button image 
    if (state == PushButtonState.Pressed)
    {
        // Set the background color to the parent if visual styles   
        // are disabled, because DrawParentBackground will only paint   
        // over the control background if visual styles are enabled. 
        this.BackColor = Application.RenderWithVisualStyles ?
            Color.Azure : this.Parent.BackColor;

        // If you comment out the call to DrawParentBackground,  
        // the background of the control will still be visible  
        // outside the pressed button, if visual styles are enabled.
        ButtonRenderer.DrawParentBackground(e.Graphics,
            ClientRectangle, this);
        ButtonRenderer.DrawButton(e.Graphics, ClickRectangle,
            this.Text, this.Font, true, state);
    }

    // Draw the bigger unpressed button image. 
    else
    {
        ButtonRenderer.DrawButton(e.Graphics, ClientRectangle,
            this.Text, this.Font, false, state);
    }
}

// Draw the smaller pressed button image. 
protected override void OnMouseDown(MouseEventArgs e)
{
    base.OnMouseDown(e);
    this.Text = "Clicked!";
    state = PushButtonState.Pressed;
    Invalidate();
}

// Draw the button in the hot state.  
protected override void OnMouseEnter(EventArgs e)
{
    base.OnMouseEnter(e);
    this.Text = "Click here";
    state = PushButtonState.Hot;
    Invalidate();
}

// Draw the button in the unpressed state. 
protected override void OnMouseLeave(EventArgs e)
{
    base.OnMouseLeave(e);
    this.Text = "Click here";
    state = PushButtonState.Normal;
    Invalidate();
}

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft