ComboBoxRenderer.DrawTextBox Method (Graphics, Rectangle, String, Font, Rectangle, ComboBoxState)

 

Draws a text box in the specified state and bounds, with the specified text and text bounds.

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

public static void DrawTextBox(
	Graphics g,
	Rectangle bounds,
	string comboBoxText,
	Font font,
	Rectangle textBounds,
	ComboBoxState state
)

Parameters

g
Type: System.Drawing.Graphics

The Graphics used to draw the text box.

bounds
Type: System.Drawing.Rectangle

The Rectangle that specifies the bounds of the text box.

comboBoxText
Type: System.String

The String to draw in the text box.

font
Type: System.Drawing.Font

The Font to apply to comboBoxText.

textBounds
Type: System.Drawing.Rectangle

The Rectangle that specifies the bounds in which to draw comboBoxText.

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

One of the ComboBoxState values that specifies the visual state of the text box.

Exception Condition
InvalidOperationException

The operating system does not support visual styles.

-or-

Visual styles are disabled by the user in the operating system.

-or-

Visual styles are not applied to the client area of application windows.

Before calling this method, you should verify that the IsSupported property returns true.

The following code example uses the DrawTextBox(Graphics, Rectangle, String, Font, ComboBoxState) method in a custom control's OnPaint method to draw a text box. This code example is part of a larger example provided for the ComboBoxRenderer class.

// Draw the combo box in the current state.
protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    if (!ComboBoxRenderer.IsSupported)
    {
        this.Parent.Text = "Visual Styles Disabled";
        return;
    }

    this.Parent.Text = "CustomComboBox Enabled";

    // Always draw the main text box and drop down arrow in their 
    // current states
    ComboBoxRenderer.DrawTextBox(e.Graphics, topTextBoxRectangle,
        this.Text, this.Font, textBoxState);
    ComboBoxRenderer.DrawDropDownButton(e.Graphics, arrowRectangle,
        arrowState);

    // Only draw the bottom text box if the arrow has been clicked
    if (isActivated)
    {
        ComboBoxRenderer.DrawTextBox(e.Graphics,
            bottomTextBoxRectangle, bottomText, this.Font,
            textBoxState);
    }
}

protected override void OnMouseDown(MouseEventArgs e)
{
    base.OnMouseDown(e);

    // Check whether the user clicked the arrow.
    if (arrowRectangle.Contains(e.Location) &&
        ComboBoxRenderer.IsSupported)
    {
        // Draw the arrow in the pressed state.
        arrowState = ComboBoxState.Pressed;

        // The user has activated the combo box.
        if (!isActivated)
        {
            this.Text = "Clicked!";
            textBoxState = ComboBoxState.Pressed;
            isActivated = true;
        }

        // The user has deactivated the combo box.
        else
        {
            this.Text = "Click here";
            textBoxState = ComboBoxState.Normal;
            isActivated = false;
        }

        // Redraw the control.
        Invalidate();
    }
}

.NET Framework
Available since 2.0
Return to top
Show: