ComboBoxRenderer.DrawTextBox 方法

定義

繪製具有作業系統之目前視覺化樣式的文字方塊。

多載

DrawTextBox(Graphics, Rectangle, ComboBoxState)

在指定的狀態和範圍中繪製文字方塊。

DrawTextBox(Graphics, Rectangle, String, Font, ComboBoxState)

在指定的狀態和範圍中,使用指定的文字繪製文字方塊。

DrawTextBox(Graphics, Rectangle, String, Font, Rectangle, ComboBoxState)

在指定的狀態和範圍中,使用指定的文字和文字範圍繪製文字方塊。

DrawTextBox(Graphics, Rectangle, String, Font, TextFormatFlags, ComboBoxState)

在指定的狀態和範圍中,使用指定的文字和文字格式繪製文字方塊。

DrawTextBox(Graphics, Rectangle, String, Font, Rectangle, TextFormatFlags, ComboBoxState)

在指定的狀態和範圍中,使用指定的文字、文字格式和文字範圍繪製文字方塊。

DrawTextBox(Graphics, Rectangle, ComboBoxState)

在指定的狀態和範圍中繪製文字方塊。

public:
 static void DrawTextBox(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::Windows::Forms::VisualStyles::ComboBoxState state);
public static void DrawTextBox (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, System.Windows.Forms.VisualStyles.ComboBoxState state);
static member DrawTextBox : System.Drawing.Graphics * System.Drawing.Rectangle * System.Windows.Forms.VisualStyles.ComboBoxState -> unit
Public Shared Sub DrawTextBox (g As Graphics, bounds As Rectangle, state As ComboBoxState)

參數

g
Graphics

繪製文字方塊所用的 Graphics

bounds
Rectangle

指定文字方塊繫結的 Rectangle

state
ComboBoxState

其中一個 ComboBoxState 值,指定文字方塊的可見狀態。

例外狀況

作業系統不支援視覺化樣式。

-或-

使用者已停用作業系統中的視覺化樣式。

-或-

視覺化樣式不適用於應用程式視窗的工作區。

備註

呼叫這個方法之前,您應該先 IsSupported 確認 屬性會傳 true 回 。

適用於

DrawTextBox(Graphics, Rectangle, String, Font, ComboBoxState)

在指定的狀態和範圍中,使用指定的文字繪製文字方塊。

public:
 static void DrawTextBox(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ comboBoxText, System::Drawing::Font ^ font, System::Windows::Forms::VisualStyles::ComboBoxState state);
public static void DrawTextBox (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string comboBoxText, System.Drawing.Font font, System.Windows.Forms.VisualStyles.ComboBoxState state);
public static void DrawTextBox (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? comboBoxText, System.Drawing.Font? font, System.Windows.Forms.VisualStyles.ComboBoxState state);
static member DrawTextBox : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * System.Windows.Forms.VisualStyles.ComboBoxState -> unit
Public Shared Sub DrawTextBox (g As Graphics, bounds As Rectangle, comboBoxText As String, font As Font, state As ComboBoxState)

參數

g
Graphics

繪製文字方塊所用的 Graphics

bounds
Rectangle

指定文字方塊繫結的 Rectangle

comboBoxText
String

要在文字方塊中繪製的 String

font
Font

要套用至 comboBoxTextFont

state
ComboBoxState

其中一個 ComboBoxState 值,指定文字方塊的可見狀態。

例外狀況

作業系統不支援視覺化樣式。

-或-

使用者已停用作業系統中的視覺化樣式。

-或-

視覺化樣式不適用於應用程式視窗的工作區。

備註

呼叫這個方法之前,您應該先 IsSupported 確認 屬性會傳 true 回 。

適用於

DrawTextBox(Graphics, Rectangle, String, Font, Rectangle, ComboBoxState)

在指定的狀態和範圍中,使用指定的文字和文字範圍繪製文字方塊。

public:
 static void DrawTextBox(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ comboBoxText, System::Drawing::Font ^ font, System::Drawing::Rectangle textBounds, System::Windows::Forms::VisualStyles::ComboBoxState state);
public static void DrawTextBox (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string comboBoxText, System.Drawing.Font font, System.Drawing.Rectangle textBounds, System.Windows.Forms.VisualStyles.ComboBoxState state);
public static void DrawTextBox (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? comboBoxText, System.Drawing.Font? font, System.Drawing.Rectangle textBounds, System.Windows.Forms.VisualStyles.ComboBoxState state);
static member DrawTextBox : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * System.Drawing.Rectangle * System.Windows.Forms.VisualStyles.ComboBoxState -> unit
Public Shared Sub DrawTextBox (g As Graphics, bounds As Rectangle, comboBoxText As String, font As Font, textBounds As Rectangle, state As ComboBoxState)

參數

g
Graphics

繪製文字方塊所用的 Graphics

bounds
Rectangle

指定文字方塊繫結的 Rectangle

comboBoxText
String

要在文字方塊中繪製的 String

font
Font

要套用至 comboBoxTextFont

textBounds
Rectangle

Rectangle,指定用來繪製 comboBoxText 的範圍。

state
ComboBoxState

其中一個 ComboBoxState 值,指定文字方塊的可見狀態。

例外狀況

作業系統不支援視覺化樣式。

-或-

使用者已停用作業系統中的視覺化樣式。

-或-

視覺化樣式不適用於應用程式視窗的工作區。

範例

下列程式碼範例會 DrawTextBox(Graphics, Rectangle, String, Font, ComboBoxState) 使用自訂控制項 OnPaint 方法中的 方法來繪製文字方塊。 此程式碼範例是針對 類別提供的較大範例的 ComboBoxRenderer 一部分。

      // 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();
        }
    }
// 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();
    }
}
' Draw the combo box in the current state.
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    MyBase.OnPaint(e)

    If Not ComboBoxRenderer.IsSupported Then
        Me.Parent.Text = "Visual Styles	Disabled"
        Return
    End If

    Me.Parent.Text = "CustomComboBox Enabled"

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

    ' Only draw the bottom text box if the arrow has been clicked.
    If isActivated Then
        ComboBoxRenderer.DrawTextBox(e.Graphics, _
            bottomTextBoxRectangle, bottomText, Me.Font, textBoxState)
    End If
End Sub

Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
    MyBase.OnMouseDown(e)

    ' Check whether the user clicked the arrow.
    If arrowRectangle.Contains(e.Location) And _
        ComboBoxRenderer.IsSupported Then

        ' Draw the arrow in the pressed state.
        arrowState = ComboBoxState.Pressed

        ' The user has activated the combo box.
        If Not isActivated Then
            Me.Text = "Clicked!"
            textBoxState = ComboBoxState.Pressed
            isActivated = True

        ' The user has deactivated the combo box.
        Else
            Me.Text = "Click here"
            textBoxState = ComboBoxState.Normal
            isActivated = False
        End If

        ' Redraw the control.
        Invalidate()
    End If
End Sub

備註

呼叫這個方法之前,您應該先 IsSupported 確認 屬性會傳 true 回 。

適用於

DrawTextBox(Graphics, Rectangle, String, Font, TextFormatFlags, ComboBoxState)

在指定的狀態和範圍中,使用指定的文字和文字格式繪製文字方塊。

public:
 static void DrawTextBox(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ comboBoxText, System::Drawing::Font ^ font, System::Windows::Forms::TextFormatFlags flags, System::Windows::Forms::VisualStyles::ComboBoxState state);
public static void DrawTextBox (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string comboBoxText, System.Drawing.Font font, System.Windows.Forms.TextFormatFlags flags, System.Windows.Forms.VisualStyles.ComboBoxState state);
public static void DrawTextBox (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? comboBoxText, System.Drawing.Font? font, System.Windows.Forms.TextFormatFlags flags, System.Windows.Forms.VisualStyles.ComboBoxState state);
static member DrawTextBox : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * System.Windows.Forms.TextFormatFlags * System.Windows.Forms.VisualStyles.ComboBoxState -> unit
Public Shared Sub DrawTextBox (g As Graphics, bounds As Rectangle, comboBoxText As String, font As Font, flags As TextFormatFlags, state As ComboBoxState)

參數

g
Graphics

繪製文字方塊所用的 Graphics

bounds
Rectangle

指定文字方塊繫結的 Rectangle

comboBoxText
String

要在文字方塊中繪製的 String

font
Font

要套用至 comboBoxTextFont

flags
TextFormatFlags

TextFormatFlags 值的位元組合。

state
ComboBoxState

其中一個 ComboBoxState 值,指定文字方塊的可見狀態。

例外狀況

作業系統不支援視覺化樣式。

-或-

使用者已停用作業系統中的視覺化樣式。

-或-

視覺化樣式不適用於應用程式視窗的工作區。

備註

呼叫這個方法之前,您應該先 IsSupported 確認 屬性會傳 true 回 。

適用於

DrawTextBox(Graphics, Rectangle, String, Font, Rectangle, TextFormatFlags, ComboBoxState)

在指定的狀態和範圍中,使用指定的文字、文字格式和文字範圍繪製文字方塊。

public:
 static void DrawTextBox(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ comboBoxText, System::Drawing::Font ^ font, System::Drawing::Rectangle textBounds, System::Windows::Forms::TextFormatFlags flags, System::Windows::Forms::VisualStyles::ComboBoxState state);
public static void DrawTextBox (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string comboBoxText, System.Drawing.Font font, System.Drawing.Rectangle textBounds, System.Windows.Forms.TextFormatFlags flags, System.Windows.Forms.VisualStyles.ComboBoxState state);
public static void DrawTextBox (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? comboBoxText, System.Drawing.Font? font, System.Drawing.Rectangle textBounds, System.Windows.Forms.TextFormatFlags flags, System.Windows.Forms.VisualStyles.ComboBoxState state);
static member DrawTextBox : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * System.Drawing.Rectangle * System.Windows.Forms.TextFormatFlags * System.Windows.Forms.VisualStyles.ComboBoxState -> unit
Public Shared Sub DrawTextBox (g As Graphics, bounds As Rectangle, comboBoxText As String, font As Font, textBounds As Rectangle, flags As TextFormatFlags, state As ComboBoxState)

參數

g
Graphics

繪製文字方塊所用的 Graphics

bounds
Rectangle

指定文字方塊繫結的 Rectangle

comboBoxText
String

要在文字方塊中繪製的 String

font
Font

要套用至 comboBoxTextFont

textBounds
Rectangle

Rectangle,指定用來繪製 comboBoxText 的範圍。

flags
TextFormatFlags

TextFormatFlags 值的位元組合。

state
ComboBoxState

其中一個 ComboBoxState 值,指定文字方塊的可見狀態。

例外狀況

作業系統不支援視覺化樣式。

-或-

使用者已停用作業系統中的視覺化樣式。

-或-

視覺化樣式不適用於應用程式視窗的工作區。

備註

呼叫這個方法之前,您應該先 IsSupported 確認 屬性會傳 true 回 。

適用於