ComboBoxRenderer.DrawDropDownButton(Graphics, Rectangle, ComboBoxState) ComboBoxRenderer.DrawDropDownButton(Graphics, Rectangle, ComboBoxState) ComboBoxRenderer.DrawDropDownButton(Graphics, Rectangle, ComboBoxState) ComboBoxRenderer.DrawDropDownButton(Graphics, Rectangle, ComboBoxState) Method

정의

운영 체제의 현재 비주얼 스타일을 사용하여 드롭다운 화살표를 그립니다.Draws a drop-down arrow with the current visual style of the operating system.

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

매개 변수

g
Graphics Graphics Graphics Graphics

드롭다운 화살표를 그리는 데 사용되는 Graphics입니다.The Graphics used to draw the drop-down arrow.

bounds
Rectangle Rectangle Rectangle Rectangle

드롭다운 화살표의 범위를 지정하는 Rectangle입니다.The Rectangle that specifies the bounds of the drop-down arrow.

state
ComboBoxState ComboBoxState ComboBoxState ComboBoxState

드롭다운 화살표의 표시 상태를 지정하는 ComboBoxState 값 중 하나입니다.One of the ComboBoxState values that specifies the visual state of the drop-down arrow.

예외

운영 체제에서 비주얼 스타일을 지원하지 않는 경우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.

예제

다음 코드 예제에서는 합니다 DrawDropDownButton 메서드는 사용자 지정 컨트롤의 OnPaint 마우스 포인터의 위치에 따라 결정 되는 상태의 드롭다운 화살표를 그리는 방법입니다.The following code example uses the DrawDropDownButton method in a custom control's OnPaint method to draw a drop-down arrow in the state determined by the location of the mouse pointer. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 ComboBoxRenderer 클래스입니다.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();
        }
    }
// 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합니다.Before calling this method, you should verify that the IsSupported property returns true.

적용 대상