Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.67 KB | None | 0 0
  1. Imports System.Threading
  2.  
  3. Public Class PulseButton
  4.     Inherits Button
  5.  
  6.     Private StopPulsing As Boolean = True
  7.     Public Property PulseColor As Color = Color.Orange
  8.  
  9.     Private Sub Fade(ByVal img As Bitmap)
  10.         'Definir Une variable de transparency
  11.         Dim Transparency As Integer = 10
  12.         'Definir une valeur d'incrementation /Decrimentation
  13.         Dim steps As Integer = 10
  14.         'Créer un objet graphique
  15.         Dim g As Graphics = Me.CreateGraphics
  16.         Try
  17.             'Boocle de remplissage avec une couche de couleur transparent
  18.             Do While Not StopPulsing
  19.                 'Effacer l'effet precedent par traçage de l'image initial
  20.                 g.DrawImage(img, 0, 0)
  21.                 'Ajouter une couche de couleur avec un niveau de transparence variable
  22.                 g.FillRectangle(New SolidBrush(Color.FromArgb(Transparency, PulseColor)), Me.DisplayRectangle)
  23.                 'Voire si la valeur apres INC / DEC est dans les borne ou non
  24.                 If steps + Transparency < 0 OrElse steps + Transparency > 100 Then
  25.                     'Si elle est hors les bornes, Changer le signe de la valeur d"INC /DEC
  26.                     steps = -steps
  27.                 End If
  28.                 'Ajouter la valeur d'INC / DEC au niveau de transparence
  29.                 Transparency += steps
  30.                 'Pause un peut pour laisser voir l'effet
  31.                 Thread.Sleep(60)
  32.             Loop
  33.             'Apres le sort de la boucle, Effacer les effet par traçage  de l'image initial
  34.             g.DrawImage(img, 0, 0)
  35.         Catch ex As Exception
  36.         End Try
  37.     End Sub
  38.  
  39.     Public Sub Pulse()
  40.         'Si l'etat est normal
  41.         If StopPulsing Then
  42.             'Créer un thread Liée à la procedure "Fade"
  43.             Dim PulseThread As New Thread(AddressOf Fade)
  44.             'Initializer la valeur de StopPulse par Faux
  45.             StopPulsing = False
  46.             'Creer un objet de type Bitmap
  47.             Dim bmp As Bitmap = New Bitmap(Me.Width, Me.Height)
  48.             'Garder une image du boutton en forme normale
  49.             Me.DrawToBitmap(bmp, Me.DisplayRectangle)
  50.             'Lancer le thread avec le parametre
  51.             PulseThread.Start(bmp)
  52.         End If
  53.     End Sub
  54.  
  55.     Public Sub StopPulse()
  56.         StopPulsing = True
  57.     End Sub
  58.  
  59.     Private Sub PulseButton_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.MouseEnter
  60.         StopPulsing = True
  61.     End Sub
  62.  
  63.     Sub New()
  64.         MyBase.New()
  65.         InitializeComponent()
  66.     End Sub
  67.  
  68.     Private Sub InitializeComponent()
  69.         Me.SuspendLayout()
  70.         Me.ResumeLayout(False)
  71.     End Sub
  72. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement