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.
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:
virtual void OnPaint(PaintEventArgs^ e) override
{
Control::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:
virtual void OnMouseDown(MouseEventArgs^ e) override
{
Control::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();
}
}
Available since 2.0