a_jam_sandwich Posted February 7, 2003 Posted February 7, 2003 (edited) Imports System Imports System.Collections Imports System.ComponentModel Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Data Imports System.Windows.Forms Public Class HoverButton : Inherits System.Windows.Forms.UserControl Private isHover As Boolean = False Private _offImage As Bitmap Private _OnImage As Bitmap Private _DisabledImage As Bitmap ' declare Off screen image and Offscreen graphics Private OffScreenImage As Image Private gOffScreen As Graphics #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 'UserControl 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.ComponentModel.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. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() ' 'HoverButton ' Me.Name = "HoverButton" Me.Size = New System.Drawing.Size(64, 64) End Sub #End Region Public Property offImage() As Image Get Return _offImage End Get Set(ByVal Value As Image) _offImage = Value Invalidate() End Set End Property Public Property onImage() As Image Get Return _OnImage End Get Set(ByVal Value As Image) _OnImage = Value Invalidate() End Set End Property Public Property disabledImage() As Image Get Return _DisabledImage End Get Set(ByVal Value As Image) _DisabledImage = Value Invalidate() End Set End Property Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) If (_offImage Is Nothing) Or (_OnImage Is Nothing) Then Exit Sub Dim g As Graphics = e.Graphics g.Clear(Me.BackColor) If Me.Enabled = True Then If isHover = True Then g.DrawImage(_OnImage, 0, 0, ClientRectangle.Width, ClientRectangle.Height) Else g.DrawImage(_offImage, 0, 0, ClientRectangle.Width, ClientRectangle.Height) End If Else g.DrawImage(_DisabledImage, 0, 0, ClientRectangle.Width, ClientRectangle.Height) End If End Sub Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs) Me.isHover = False Me.Refresh() MyBase.OnMouseLeave(New EventArgs()) End Sub Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs) Me.isHover = True Me.Refresh() MyBase.OnMouseEnter(New EventArgs()) End Sub A hover button control for anyone who wants it 3 states On, Off, Disabled maybe you may want to back buffer if so post and ill add Andy Edited February 7, 2003 by a_jam_sandwich Quote Code today gone tomorrow!
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.