VB.Net/GUI/Control Owner Draw

Материал из VB Эксперт
Версия от 15:44, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Owner Draw Button

<source lang="vbnet"> Imports System Imports System.Drawing Imports System.Windows.Forms

Public Class MainClass

  Public Shared Sub Main()
        Application.Run(New OwnerDrawnButton())
  End Sub
  
  

End Class Public Class OwnerDrawnButton

   Inherits System.Windows.Forms.Form
  1. Region " Windows Form Designer generated code "
   Public Sub New()
       MyBase.New()
       "This call is required by the Windows Form Designer.
       InitializeComponent()
       "Add any initialization after the InitializeComponent() call
   End Sub
   "Form overrides dispose to clean up the component list.
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing Then
           If Not (components Is Nothing) Then
               components.Dispose()
           End If
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.IContainer
   "NOTE: The following procedure is required by the Windows Form Designer
   "It can be modified using the Windows Form Designer.  
   "Do not modify it using the code editor.
   Friend WithEvents button4 As System.Windows.Forms.Button
   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
       Me.button4 = New System.Windows.Forms.Button()
       Me.SuspendLayout()
       "
       "button4
       "
       Me.button4.Location = New System.Drawing.Point(16, 23)
       Me.button4.Name = "button4"
       Me.button4.Size = New System.Drawing.Size(200, 40)
       Me.button4.TabIndex = 2
       Me.button4.Text = "button4"
       "
       "OwnerDrawnButton
       "
       Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
       Me.ClientSize = New System.Drawing.Size(232, 86)
       Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.button4})
       Me.Name = "OwnerDrawnButton"
       Me.Text = "OwnerDrawnButton"
       Me.ResumeLayout(False)
   End Sub
  1. End Region
   Private Sub button4_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles button4.Paint
       Dim _pen As Pen = New Pen(Color.Red, 2)
       e.Graphics.DrawRectangle(_pen, 5, 5, button4.Width - 10, button4.Height - 10)
   End Sub

End Class

      </source>


Owner Draw Status Bar

<source lang="vbnet"> Imports System Imports System.Drawing Imports System.Windows.Forms

Public Class MainClass

  Public Shared Sub Main()
        Application.Run(New OwnerDrawnStatusBar())
  End Sub
  
  

End Class Public Class OwnerDrawnStatusBar

   Inherits System.Windows.Forms.Form
  1. Region " Windows Form Designer generated code "
   Public Sub New()
       MyBase.New()
       "This call is required by the Windows Form Designer.
       InitializeComponent()
       "Add any initialization after the InitializeComponent() call
   End Sub
   "Form overrides dispose to clean up the component list.
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing Then
           If Not (components Is Nothing) Then
               components.Dispose()
           End If
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.IContainer
   "NOTE: The following procedure is required by the Windows Form Designer
   "It can be modified using the Windows Form Designer.  
   "Do not modify it using the code editor.
   Friend WithEvents statusBar1 As System.Windows.Forms.StatusBar
   Friend WithEvents statusBarPanel1 As System.Windows.Forms.StatusBarPanel
   Friend WithEvents statusBarPanel2 As System.Windows.Forms.StatusBarPanel
   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
       Me.statusBar1 = New System.Windows.Forms.StatusBar()
       Me.statusBarPanel1 = New System.Windows.Forms.StatusBarPanel()
       Me.statusBarPanel2 = New System.Windows.Forms.StatusBarPanel()
       CType(Me.statusBarPanel1, System.ruponentModel.ISupportInitialize).BeginInit()
       CType(Me.statusBarPanel2, System.ruponentModel.ISupportInitialize).BeginInit()
       Me.SuspendLayout()
       "
       "statusBar1
       "
       Me.statusBar1.Location = New System.Drawing.Point(0, 62)
       Me.statusBar1.Name = "statusBar1"
       Me.statusBar1.Panels.AddRange(New System.Windows.Forms.StatusBarPanel() {Me.statusBarPanel1, Me.statusBarPanel2})
       Me.statusBar1.ShowPanels = True
       Me.statusBar1.Size = New System.Drawing.Size(360, 32)
       Me.statusBar1.TabIndex = 4
       Me.statusBar1.Text = "statusBar1"
       "
       "statusBarPanel1
       "
       Me.statusBarPanel1.Text = "Next Panel is OwnerDrawn -->"
       Me.statusBarPanel1.Width = 190
       "
       "statusBarPanel2
       "
       Me.statusBarPanel2.Style = System.Windows.Forms.StatusBarPanelStyle.OwnerDraw
       Me.statusBarPanel2.Text = "statusBarPanel2"
       Me.statusBarPanel2.Width = 113
       "
       "OwnerDrawnStatusBar
       "
       Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
       Me.ClientSize = New System.Drawing.Size(360, 94)
       Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.statusBar1})
       Me.Name = "OwnerDrawnStatusBar"
       Me.Text = "OwnerDrawnStatusBar"
       CType(Me.statusBarPanel1, System.ruponentModel.ISupportInitialize).EndInit()
       CType(Me.statusBarPanel2, System.ruponentModel.ISupportInitialize).EndInit()
       Me.ResumeLayout(False)
   End Sub
  1. End Region
   Private Sub statusBar1_DrawItem(ByVal sender As Object, ByVal sbdevent As System.Windows.Forms.StatusBarDrawItemEventArgs) Handles statusBar1.DrawItem
       Dim b As Brush = New SolidBrush(sbdevent.ForeColor)
       Dim format As StringFormat = New StringFormat()
       format.LineAlignment = StringAlignment.Center
       format.Alignment = StringAlignment.Center
       sbdevent.Graphics.DrawRectangle(New Pen(sbdevent.BackColor), sbdevent.Bounds)
       ControlPaint.DrawButton(sbdevent.Graphics, _
           sbdevent.Bounds.Left + 5, _
           sbdevent.Bounds.Top + 5, _
           sbdevent.Bounds.Width - 10, _
           sbdevent.Bounds.Height - 10, _
           ButtonState.Normal)
       b.Dispose()
   End Sub

End Class

      </source>