Visual Basic, .NET, ASP, VBA, VBScript
 
  Библиотека кодов  
  .NET  
     
  Лэйбл с тенью  
 

Автор: Артём Кривокрисенко


Это контрол, наследующий от стандартного Label.
Imports System.Drawing.Color

Public Class ShadowLabel
     'Унаследуем класс Label.
     Inherits System.Windows.Forms.Label

     'Объявим несколько приватных переменных (для свойств)
     Private v_ShadowColor As System.Drawing.Color = Green
     Private v_ShadowSize As Int32 = 1
     Private v_ShadowStep As Int32 = 1

#Region " Windows Form Designer generated code "
     Public Sub New()
         MyBase.New()
         InitializeComponent()
     End Sub

     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

     Private components As System.ComponentModel.IContainer

     <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
         Me.Name = "ShadowLabel"

     End Sub
#End Region

     'Установка/считывание свойства ShadowColor (цвет тени)
     Public Property ShadowColor() As System.Drawing.Color
         Get
             ShadowColor = v_ShadowColor
         End Get
         Set(ByVal Value As System.Drawing.Color)
             v_ShadowColor = Value
             'Перерисуем лейбл
             MyBase.Refresh()
         End Set
     End Property

     'Установка/чтение свойства ShadowSize (размер тени)
     Public Property ShadowSize() As Int32
         Get
             ShadowSize = v_ShadowSize
         End Get
         Set(ByVal Value As Int32)
             If Value >= 0 Then
                 v_ShadowSize = Value
                 MyBase.Refresh()
             End If
         End Set
     End Property

     'Смещение тени
     Public Property ShadowStep() As Int32
         Get
             ShadowStep = v_ShadowStep
         End Get
         Set(ByVal Value As Int32)
             If Value >= 0 Then
                 v_ShadowStep = Value
                 MyBase.Refresh()
             End If
         End Set
     End Property


     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
         Dim i As Int32
         'Очистим лейбл
         e.Graphics.Clear(MyBase.BackColor)

         'Отрисуем тень нужное кол-во раз
         For i = v_ShadowSize To 1 Step -1
             e.Graphics.DrawString(MyBase.Text, MyBase.Font, New SolidBrush(v_ShadowColor), New RectangleF(i * v_ShadowStep, i * v_ShadowStep, MyBase.Width, MyBase.Height))
         Next i
         Отрисуем(текст)
         e.Graphics.DrawString(MyBase.Text, MyBase.Font, New SolidBrush(MyBase.ForeColor), New RectangleF(0, 0, MyBase.Width, MyBase.Height))
     End Sub
End Class
 
     
  VBNet online (всего: 51608)  
 

Логин:

Пароль:

Регистрация, забыли пароль?


В чате сейчас человек
 
     
  VBNet рекомендует  
   
     
  Лучшие материалы  
 
ActiveX контролы (112)
Hitman74_Library (36119)
WindowsXPControls (20739)
FlexGridPlus (19374)
DSMAniGifControl (18295)
FreeButton (15157)
Примеры кода (546)
Parol (18027)
Passworder (9299)
Screen saver (7654)
Kerish AI (5817)
Folder_L (5768)
Статьи по VB (136)
Мое второе впечатление... (11236)
VB .NET: дорога в будущее (11161)
Основы SQL (9225)
Сообщения Windows в Vi... (8788)
Классовая теория прогр... (8619)
 
     
Техническая поддержка MTW-хостинг | © Copyright 2002-2011 VBNet.RU | Пишите нам