Rubrik: Grafik und Font · Grafische Effekte | VB-Versionen: VB.NET | 05.10.07 |
Laufschrift mit Hintergrund-Farbverlauf (VB.NET) Dieses Beispiel zeigt, wie man in einem PictureBox-Control eine Laufschrift (Ticker) mit Hintergrundfarbverlauf erzeugt. | ||
Autor: Dieter Otter | Bewertung: | Views: 17.240 |
www.tools4vb.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Dieses Beispiel zeigt, wie man in einem PictureBox-Control eine Laufschrift (Ticker) mit Hintergrundfarbverlauf erzeugt.
Imports System.Drawing.Drawing2D Public Class Form1 ' Text, der als Laufschrift angezeigt werden soll Dim sAnimatedText As String = "Herzlich Willkommen bei " & _ "www.vbarchiv.net - die deutschsprachige Internetseite, " & _ "wenn es ums Programmieren mit Visual Basic geht +++ " ' aktuelle Textposition Dim nPos As Integer = 0 ' Timer-Objekt zum Steuern der Laufschrift Dim WithEvents oTimer As Timer
Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Timer starten oTimer = New Timer oTimer.Interval = 150 oTimer.Start() End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing ' Timer stoppen oTimer.Stop() oTimer.Dispose() End Sub
Private Sub oTimer_Tick(ByVal sender As Object, ByVal _ e As System.EventArgs) Handles oTimer.Tick ' PictureBox "refreshen" nPos += 1 PictureBox1.Invalidate() End Sub
Private Sub PictureBox1_Paint(ByVal sender As Object, _ ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint ' String zusammensetzen Dim sText As String = "" With sAnimatedText If .Length > 0 Then If nPos < 1 OrElse nPos > .Length Then nPos = 1 sText = .Substring(nPos - 1) & IIf(nPos > 1, .Substring(0, nPos - 1), "") End If End With ' Hintergrundfarbverlauf Dim oBrush As New LinearGradientBrush(e.ClipRectangle, Color.White, Color.Blue, _ LinearGradientMode.ForwardDiagonal) ' Hintergrund-Farbverlauf anzeigen e.Graphics.FillRectangle(oBrush, e.ClipRectangle) ' String-Format (kein Zeilenumbruch) Dim DrawFormat As New StringFormat DrawFormat.FormatFlags = StringFormatFlags.NoWrap ' Rechteck für die Textausgabe Dim oRect As New Rectangle(5, 5, e.ClipRectangle.Right - 10, _ e.ClipRectangle.Bottom - 10) ' Jetzt den Text in das Graphics-Objekt zeichnen e.Graphics.DrawString(sText, New Font("Tahoma", 12, FontStyle.Bold), _ Brushes.Black, oRect, DrawFormat) End Sub
End Class