ButtonRenderer.DrawButton 方法

定義

繪製按鈕控制項。

多載

DrawButton(Graphics, Rectangle, PushButtonState)

在指定的狀態和範圍中繪製按鈕控制項。

DrawButton(Graphics, Rectangle, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有選擇性焦點矩形的按鈕控制項。

DrawButton(Graphics, Rectangle, Image, Rectangle, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有指定影像和選擇性焦點矩形的按鈕控制項。

DrawButton(Graphics, Rectangle, String, Font, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有指定文字和選擇性焦點矩形的按鈕控制項。

DrawButton(Graphics, Rectangle, String, Font, TextFormatFlags, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有指定文字和文字格式以及選擇性焦點矩形的按鈕控制項。

DrawButton(Graphics, Rectangle, String, Font, Image, Rectangle, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有指定文字和影像以及選擇性焦點矩形的按鈕控制項。

DrawButton(Graphics, Rectangle, String, Font, TextFormatFlags, Image, Rectangle, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有指定文字、文字格式和影像以及選擇性焦點矩形的按鈕控制項。

DrawButton(Graphics, Rectangle, PushButtonState)

在指定的狀態和範圍中繪製按鈕控制項。

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

參數

g
Graphics

繪製按鈕所用的 Graphics

bounds
Rectangle

指定按鈕繫結的 Rectangle

state
PushButtonState

PushButtonState 的其中一個值,指定按鈕的可見狀態。

備註

如果在作業系統中啟用視覺化樣式,而視覺化樣式會套用至目前的應用程式,這個方法將會使用目前的視覺化樣式繪製按鈕。 否則,它會使用傳統 Windows 樣式繪製按鈕。

適用於

DrawButton(Graphics, Rectangle, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有選擇性焦點矩形的按鈕控制項。

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

參數

g
Graphics

繪製按鈕所用的 Graphics

bounds
Rectangle

指定按鈕繫結的 Rectangle

focused
Boolean

true 表示在按鈕上繪製焦點矩形,否則為 false

state
PushButtonState

PushButtonState 的其中一個值,指定按鈕的可見狀態。

備註

如果在作業系統中啟用視覺化樣式,而視覺化樣式會套用至目前的應用程式,這個方法將會使用目前的視覺化樣式繪製按鈕。 否則,它會使用傳統 Windows 樣式繪製按鈕。

適用於

DrawButton(Graphics, Rectangle, Image, Rectangle, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有指定影像和選擇性焦點矩形的按鈕控制項。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::Drawing::Image ^ image, System::Drawing::Rectangle imageBounds, bool focused, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, System.Drawing.Image image, System.Drawing.Rectangle imageBounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * System.Drawing.Image * System.Drawing.Rectangle * bool * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, image As Image, imageBounds As Rectangle, focused As Boolean, state As PushButtonState)

參數

g
Graphics

繪製按鈕所用的 Graphics

bounds
Rectangle

指定按鈕繫結的 Rectangle

image
Image

在按鈕上繪製的 Image

imageBounds
Rectangle

表示 image 維度的 Rectangle

focused
Boolean

true 表示在按鈕上繪製焦點矩形,否則為 false

state
PushButtonState

PushButtonState 的其中一個值,指定按鈕的可見狀態。

備註

如果在作業系統中啟用視覺化樣式,而視覺化樣式會套用至目前的應用程式,這個方法將會使用目前的視覺化樣式繪製按鈕。 否則,它會使用傳統 Windows 樣式繪製按鈕。

適用於

DrawButton(Graphics, Rectangle, String, Font, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有指定文字和選擇性焦點矩形的按鈕控制項。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ buttonText, System::Drawing::Font ^ font, bool focused, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string buttonText, System.Drawing.Font font, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
public static void DrawButton (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? buttonText, System.Drawing.Font? font, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * bool * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, buttonText As String, font As Font, focused As Boolean, state As PushButtonState)

參數

g
Graphics

繪製按鈕所用的 Graphics

bounds
Rectangle

指定按鈕繫結的 Rectangle

buttonText
String

在按鈕上繪製的 String

font
Font

要套用至 buttonTextFont

focused
Boolean

true 表示在按鈕上繪製焦點矩形,否則為 false

state
PushButtonState

PushButtonState 的其中一個值,指定按鈕的可見狀態。

範例

下列程式碼範例會 DrawButton(Graphics, Rectangle, String, Font, Boolean, PushButtonState) 使用自訂控制項 OnPaint 方法中的 方法,在滑鼠指標的位置所決定的狀態中繪製按鈕。 此程式碼範例是針對 類別提供的較大範例的 ButtonRenderer 一部分。

    // Draw the large or small button, depending on the current state.
protected:
    virtual void OnPaint(PaintEventArgs^ e) override
    {
        __super::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.
            if (Application::RenderWithVisualStyles)
            {
                this->BackColor = Color::Azure;
            }
            else
            {
                this->BackColor = 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:
    virtual void OnMouseDown(MouseEventArgs^ e) override
    {
        __super::OnMouseDown(e);
        this->Text = "Clicked!";
        state = PushButtonState::Pressed;
        Invalidate();
    }

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

    // Draw the button in the unpressed state.
protected:
    virtual void OnMouseLeave(EventArgs^ e) override
    {
        __super::OnMouseLeave(e);
        this->Text = "Click here";
        state = PushButtonState::Normal;
        Invalidate();
    }
// 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();
}
' Draw the large or small button, depending on the current state.
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    MyBase.OnPaint(e)

    ' Draw the smaller pressed button image.
    If state = PushButtonState.Pressed Then
        ' 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.
        If Application.RenderWithVisualStyles Then
            Me.BackColor = Color.Azure
        Else
            Me.BackColor = Me.Parent.BackColor
        End If

        ' 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, _
            Me.ClientRectangle, Me)
        ButtonRenderer.DrawButton(e.Graphics, ClickRectangle, _
            Me.Text, Me.Font, True, state)

    ' Draw the bigger unpressed button image.
    Else
        ButtonRenderer.DrawButton(e.Graphics, Me.ClientRectangle, _
            Me.Text, Me.Font, False, state)
    End If
End Sub

' Draw the smaller pressed button image.
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    With Me
        .Text = "Clicked!"
        .state = PushButtonState.Pressed
    End With
    Invalidate()
End Sub

' Draw the button in the hot state. 
Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)
    MyBase.OnMouseEnter(e)
    With Me
        .Text = "Click here"
        .state = PushButtonState.Hot
    End With
    Invalidate()
End Sub

' Draw the button in the unpressed state.
Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
    MyBase.OnMouseLeave(e)
    With Me
        .Text = "Click here"
        .state = PushButtonState.Normal
    End With
    Invalidate()
End Sub

備註

如果在作業系統中啟用視覺化樣式,而視覺化樣式會套用至目前的應用程式,這個方法將會使用目前的視覺化樣式繪製按鈕。 否則,它會使用傳統 Windows 樣式繪製按鈕。

適用於

DrawButton(Graphics, Rectangle, String, Font, TextFormatFlags, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有指定文字和文字格式以及選擇性焦點矩形的按鈕控制項。

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

參數

g
Graphics

繪製按鈕所用的 Graphics

bounds
Rectangle

指定按鈕繫結的 Rectangle

buttonText
String

在按鈕上繪製的 String

font
Font

要套用至 buttonTextFont

flags
TextFormatFlags

TextFormatFlags 值的位元組合,這些值要套用至 buttonText

focused
Boolean

true 表示在按鈕上繪製焦點矩形,否則為 false

state
PushButtonState

PushButtonState 的其中一個值,指定按鈕的可見狀態。

備註

如果在作業系統中啟用視覺化樣式,而視覺化樣式會套用至目前的應用程式,這個方法將會使用目前的視覺化樣式繪製按鈕。 否則,它會使用傳統 Windows 樣式繪製按鈕。

適用於

DrawButton(Graphics, Rectangle, String, Font, Image, Rectangle, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有指定文字和影像以及選擇性焦點矩形的按鈕控制項。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ buttonText, System::Drawing::Font ^ font, System::Drawing::Image ^ image, System::Drawing::Rectangle imageBounds, bool focused, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string buttonText, System.Drawing.Font font, System.Drawing.Image image, System.Drawing.Rectangle imageBounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
public static void DrawButton (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? buttonText, System.Drawing.Font? font, System.Drawing.Image image, System.Drawing.Rectangle imageBounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * System.Drawing.Image * System.Drawing.Rectangle * bool * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, buttonText As String, font As Font, image As Image, imageBounds As Rectangle, focused As Boolean, state As PushButtonState)

參數

g
Graphics

繪製按鈕所用的 Graphics

bounds
Rectangle

指定按鈕繫結的 Rectangle

buttonText
String

在按鈕上繪製的 String

font
Font

要套用至 buttonTextFont

image
Image

在按鈕上繪製的 Image

imageBounds
Rectangle

表示 image 維度的 Rectangle

focused
Boolean

true 表示在按鈕上繪製焦點矩形,否則為 false

state
PushButtonState

PushButtonState 的其中一個值,指定按鈕的可見狀態。

備註

如果在作業系統中啟用視覺化樣式,而視覺化樣式會套用至目前的應用程式,這個方法將會使用目前的視覺化樣式繪製按鈕。 否則,它會使用傳統 Windows 樣式繪製按鈕。

適用於

DrawButton(Graphics, Rectangle, String, Font, TextFormatFlags, Image, Rectangle, Boolean, PushButtonState)

在指定的狀態和範圍中,繪製具有指定文字、文字格式和影像以及選擇性焦點矩形的按鈕控制項。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ buttonText, System::Drawing::Font ^ font, System::Windows::Forms::TextFormatFlags flags, System::Drawing::Image ^ image, System::Drawing::Rectangle imageBounds, bool focused, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string buttonText, System.Drawing.Font font, System.Windows.Forms.TextFormatFlags flags, System.Drawing.Image image, System.Drawing.Rectangle imageBounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
public static void DrawButton (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? buttonText, System.Drawing.Font? font, System.Windows.Forms.TextFormatFlags flags, System.Drawing.Image image, System.Drawing.Rectangle imageBounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * System.Windows.Forms.TextFormatFlags * System.Drawing.Image * System.Drawing.Rectangle * bool * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, buttonText As String, font As Font, flags As TextFormatFlags, image As Image, imageBounds As Rectangle, focused As Boolean, state As PushButtonState)

參數

g
Graphics

繪製按鈕所用的 Graphics

bounds
Rectangle

指定按鈕繫結的 Rectangle

buttonText
String

在按鈕上繪製的 String

font
Font

要套用至 buttonTextFont

flags
TextFormatFlags

TextFormatFlags 值的位元組合,這些值要套用至 buttonText

image
Image

在按鈕上繪製的 Image

imageBounds
Rectangle

表示 image 維度的 Rectangle

focused
Boolean

true 表示在按鈕上繪製焦點矩形,否則為 false

state
PushButtonState

PushButtonState 的其中一個值,指定按鈕的可見狀態。

備註

如果在作業系統中啟用視覺化樣式,而視覺化樣式會套用至目前的應用程式,這個方法將會使用目前的視覺化樣式繪製按鈕。 否則,它會使用傳統 Windows 樣式繪製按鈕。

適用於