¡¾·±ÌåÖÐÎÄ¡¿
¡¾ÉèΪÊ×Ò³¡¿
¡¾¼ÓÈëÊղء¿
µ±Ç°Î»Öãº.Net¼¼ÊõÊ×Ò³ >> Asp.Net¿ª·¢ >> ÔÚVB.NETÖж¨ÖÆÒ»¸ö3DµÄLabelµÄÔ´Âë

ÔÚVB.NETÖж¨ÖÆÒ»¸ö3DµÄLabelµÄÔ´Âë

2007-08-15 08:00:00  ×÷Õߣº  À´Ô´£º»¥ÁªÍø  ä¯ÀÀ´ÎÊý£º0  ÎÄ×Ö´óС£º¡¾´ó¡¿¡¾ÖС¿¡¾Ð¡¡¿
¼ò½é£ºPublic Class Lebel3D Inherits System.Windows.Forms.UserControl¡¡¡¡ #Region " Windows ´°ÌåÉè¼ÆÆ÷Éú³ÉµÄ´úÂë "¡¡¡¡ Public Sub New() MyBase.New()¡¡¡¡ '¸Ãµ÷ÓÃÊÇ Windows ´°ÌåÉè¼ÆÆ÷Ëù±ØÐèµÄ¡£ InitializeC...
¹Ø¼ü×Ö£ºÔ´Âë Ò»¸ö Label NET VB

Public Class Lebel3D

Inherits System.Windows.Forms.UserControl¡¡¡¡

#Region " Windows ´°ÌåÉè¼ÆÆ÷Éú³ÉµÄ´úÂë "¡¡¡¡

Public Sub New()

MyBase.New()¡¡¡¡

'¸Ãµ÷ÓÃÊÇ Windows ´°ÌåÉè¼ÆÆ÷Ëù±ØÐèµÄ¡£

InitializeComponent()¡¡¡¡

'ÔÚ InitializeComponent() µ÷ÓÃÖ®ºóÌí¼ÓÈκγõʼ»¯

mCaption = "Label3D"

mAlignment = Align.CenterMiddle

mAutoSize = False

mEffect = Effect3D.Raised

setstyle(ControlStyles.ResizeRedraw, True)

End Sub¡¡¡¡

'UserControl1 ÖØÐ´ dispose ÒÔÇåÀí×é¼þÁÐ±í¡£

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¡¡¡¡

'Windows ´°ÌåÉè¼ÆÆ÷Ëù±ØÐèµÄ

Private components As System.ComponentModel.IContainer

'×¢Ò⣺ÒÔϹý³ÌÊÇ Windows ´°ÌåÉè¼ÆÆ÷Ëù±ØÐèµÄ

'¿ÉÒÔʹÓà Windows ´°ÌåÉè¼ÆÆ÷Ð޸Ĵ˹ý³Ì¡£

'²»ÒªÊ¹ÓôúÂë±à¼­Æ÷ÐÞ¸ÄËü¡£

Private Sub InitializeComponent() '

Me.Name = "Label3D"¡¡¡¡

End Sub¡¡¡¡

#End Region¡¡¡¡

Private Shared mAlignment As Align

Private Shared mAutoSize As Boolean

Private Shared mEffect As Effect3D

Private mCaption As String¡¡¡¡

Public Property Alignment() As Align

Get

Return mAlignment

End Get

Set(ByVal Value As Align)

mAlignment = Value

Invalidate()

End Set

End Property¡¡¡¡

Public Property AutoSize() As Boolean

Get

Return mAutoSize

End Get

Set(ByVal Value As Boolean)

mAutoSize = Value

Invalidate()

End Set

End Property¡¡¡¡

Public Property Effect() As Effect3D

Get

Return mEffect

End Get

Set(ByVal Value As Effect3D)

mEffect = Value

Invalidate()

End Set

End Property¡¡¡¡

Public Property Caption() As String

Get

Return mCaption

End Get

Set(ByVal Value As String)

mCaption = Value

Invalidate()

End Set

End Property¡¡¡¡

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)

Dim lblFont As Font = Me.Font

Dim lblBrush As New SolidBrush(Color.Red)

Dim X, Y As Integer

Dim textSize As SizeF¡¡¡¡

textSize = e.Graphics.MeasureString(mCaption, lblFont)¡¡¡¡

If mAutoSize Then

Me.Width = textSize.Width

Me.Height = textSize.Height

End If¡¡¡¡

Select Case Me.mAlignment

Case Align.BottomLeft

X = 0

Y = Me.Height - textSize.Height

Case Align.BottomMiddle

X = CInt((Me.Width - textSize.Width) / 2)

Y = Me.Height - textSize.Height

Case Align.BottomRight

X = Me.Width - textSize.Width '- 2

Y = Me.Height - textSize.Height

Case Align.CenterLeft

X = 0

Y = (Me.Height - textSize.Height) / 2

Case Align.CenterMiddle

X = CInt((Me.Width - textSize.Width) / 2)

Y = (Me.Height - textSize.Height) / 2

Case Align.CenterRight

X = Me.Width - textSize.Width '- 2

Y = (Me.Height - textSize.Height) / 2

Case Align.TopLeft

X = 0

Y = 0

Case Align.TopMiddle

X = CInt((Me.Width - textSize.Width) / 2)

Y = 0

Case Align.TopRight

X = Me.Width - textSize.Width ' - 2

Y = 0

End Select¡¡¡¡

Dim dispX, dispY As Integer

Select Case mEffect

Case Effect3D.None : dispX = 0 : dispY = 0

Case Effect3D.Carved : dispX = 1 : dispY = 1

Case Effect3D.CarvedHeavy : dispX = 2 : dispY = 2

Case Effect3D.Raised : dispX = -1 : dispY = -1

Case Effect3D.RaisedHeavy : dispX = -2 : dispY = -2

End Select¡¡¡¡

e.Graphics.Clear(Me.BackColor)

lblBrush.Color = Color.White

e.Graphics.DrawString(mCaption, lblFont, lblBrush, X, Y)

lblBrush.Color = Me.ForeColor

If Me.DesignMode Then

e.Graphics.DrawString("Designtime", New Font("verdana", 24, FontStyle.Bold), New SolidBrush(Color.FromArgb(200, 230, 200, 255)), 0, 0)

Else

e.Graphics.DrawString("Runtime", New Font("verdana", 24, FontStyle.Bold), New SolidBrush(Color.FromArgb(200, 230, 200, 255)), 0, 0)

End If

e.Graphics.DrawString(mCaption, lblFont, lblBrush, X + dispX, Y + dispY)

End Sub¡¡¡¡

Private mOnAlignmentChanged As EventHandler

Private mOnAutoSizeChanged As EventHandler

Private mOnEffectChanged As EventHandler

Private mOnCaptionChanged As EventHandler¡¡¡¡

Public Event AlignmentChanged(ByVal sender As Object, ByVal ev As EventArgs)

Public Event AutoSizeChanged(ByVal sender As Object, ByVal ev As EventArgs)

Public Event EffectChanged(ByVal sender As Object, ByVal ev As EventArgs)

Public Event CaptionChanged(ByVal sender As Object, ByVal ev As EventArgs)¡¡¡¡

Protected Overridable Sub OnAlignmentChanged(ByVal e As EventArgs)

Invalidate()

If Not (mOnAlignmentChanged Is Nothing) Then mOnAlignmentChanged.Invoke(Me, e)

End Sub

Protected Overridable Sub OnEffectChanged(ByVal e As EventArgs)

Invalidate()

If Not (mOnEffectChanged Is Nothing) Then mOnEffectChanged.Invoke(Me, e)

End Sub

Protected Overridable Sub OnAutoSizeChanged(ByVal e As EventArgs)

Invalidate()

If Not (mOnAutosizeChanged Is Nothing) Then mOnAutosizeChanged.Invoke(Me, e)

End Sub

Protected Overridable Sub OnCaptionChanged(ByVal e As EventArgs)

Invalidate()

If Not (mOnCaptionChanged Is Nothing) Then mOnCaptionChanged.Invoke(Me, e)

End Sub

End Class¡¡¡¡

Public Enum Align

TopLeft

TopMiddle

TopRight

CenterLeft

CenterMiddle

CenterRight

BottomLeft

BottomMiddle

BottomRight

End Enum¡¡¡¡

Public Enum Effect3D

None

Raised

RaisedHeavy

Carved

CarvedHeavy

End Enum

ÔðÈα༭£ºadmin
±¾ÎÄÒýÓõØÖ·£º http://www.3pcode.com/net/2007/08/89044.htm
Ïà¹ØÎÄÕÂ