當前位置: 首頁>>代碼示例>>VB.NET>>正文


VB.NET ButtonRenderer類代碼示例

本文整理匯總了VB.NET中System.Windows.Forms.ButtonRenderer的典型用法代碼示例。如果您正苦於以下問題:VB.NET ButtonRenderer類的具體用法?VB.NET ButtonRenderer怎麽用?VB.NET ButtonRenderer使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了ButtonRenderer類的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的VB.NET代碼示例。

示例1: New

' 導入命名空間
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.VisualStyles

Namespace ButtonRendererSample
    Class Form1
        Inherits Form

        Public Sub New()
            Dim Button1 As New CustomButton()
            Controls.Add(Button1)

            If Application.RenderWithVisualStyles Then
                Me.Text = "Visual Styles Enabled"
            Else
                Me.Text = "Visual Styles Disabled"
            End If
        End Sub

        <STAThread()> _
        Shared Sub Main()
            ' If you do not call EnableVisualStyles below, then  
            ' ButtonRenderer automatically detects this and draws
            ' the button without visual styles.
            Application.EnableVisualStyles()
            Application.Run(New Form1())
        End Sub
    End Class

    Public Class CustomButton
        Inherits Control

        Private clickRectangleValue As New Rectangle()
        Private state As PushButtonState = PushButtonState.Normal

        Public Sub New()
            With Me
                Size = New Size(100, 40)
                Location = New Point(50, 50)
                Font = SystemFonts.IconTitleFont
                Text = "Click here"
            End With
        End Sub

        ' Define the bounds of the smaller pressed button.
        Public ReadOnly Property ClickRectangle() As Rectangle
            Get
                With clickRectangleValue
                    .X = Me.ClientRectangle.X + CInt(0.2 * _
                        Me.ClientRectangle.Width)
                    .Y = Me.ClientRectangle.Y + CInt(0.2 * _
                        Me.ClientRectangle.Height)
                    .Width = Me.ClientRectangle.Width - _
                        CInt(0.4 * Me.ClientRectangle.Width)
                    .Height = Me.ClientRectangle.Height - _
                        CInt(0.4 * Me.ClientRectangle.Height)
                End With
                Return clickRectangleValue
            End Get
        End Property

        ' 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

        ' Draw the button hot if the mouse is released on the button.
        Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
            MyBase.OnMouseUp(e)
            OnMouseEnter(e)
        End Sub

        ' Detect when the cursor leaves the button area while it 
        ' is pressed.
        Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
            MyBase.OnMouseMove(e)

            ' Detect when the left mouse button is down and   
            ' the cursor has left the pressed button area. 
            If (e.Button And MouseButtons.Left) = MouseButtons.Left And Not _
                Me.ClientRectangle.Contains(e.Location) And _
                state = PushButtonState.Pressed Then
                OnMouseLeave(e)
            End If
        End Sub

    End Class
End Namespace
開發者ID:VB.NET開發者,項目名稱:System.Windows.Forms,代碼行數:144,代碼來源:ButtonRenderer


注:本文中的System.Windows.Forms.ButtonRenderer類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。