السلام عليكم،
الكود التالي يرسم ألوان متدرجة على Label1 عند الضغط على Button1 داخل Form1
كود :
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PaintOnControl(Label1, Color.SteelBlue, Color.PaleTurquoise, Drawing2D.LinearGradientMode.Horizontal, 2)
End Sub
Public Sub PaintOnControl(ByVal ctrl As Control, ByVal col1 As Color, ByVal col2 As Color, Optional ByVal gradientMode As Drawing2D.LinearGradientMode = Drawing2D.LinearGradientMode.Horizontal, Optional ByVal paintingMeth As PaintingMethod = 2)
c1 = col1
c2 = col2
grad = gradientMode
meth = paintingMeth
AddHandler ctrl.Paint, AddressOf Handler
ctrl.Refresh()
End Sub
Private c1 As Color
Private c2 As Color
Private grad As Drawing2D.LinearGradientMode
Private meth As PaintingMethod
Private Sub Handler(ByVal sender As Object, ByVal e As PaintEventArgs)
Dim ctrl As Control = DirectCast(sender, Control)
Select Case meth
Case 1
Using brsh As New Drawing2D.LinearGradientBrush(ctrl.ClientRectangle, c1, c2, grad)
e.Graphics.FillRectangle(brsh, ctrl.ClientRectangle)
End Using
Case 2
Dim bmp As New Bitmap(ctrl.ClientRectangle.Width, ctrl.ClientRectangle.Height)
Using brsh As New Drawing2D.LinearGradientBrush(ctrl.ClientRectangle, c1, c2, grad)
Using g As Graphics = Graphics.FromImage(bmp)
g.FillRectangle(brsh, ctrl.ClientRectangle)
End Using
End Using
ctrl.BackgroundImage = bmp
End Select
End Sub
Public Enum PaintingMethod
Direct = 1
OnBitmap = 2
End Enum
End Class