scrolling text / Marque visual studio express /

i'v found several scrolling text / marque examples on the net .. i'v tested a lot of them .. but some some reason all of them are not smooth .. text is 'blinking'  .. anyone knows a good marque control? a paid one is also good (within budget:) ) .. i really tried alot of them..

thanks in advanced
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Bob LearnedCommented:
Here is a crude custom control that I have in my bag-o-tricks, that doesn't "blink", and is pretty smooth, that you can tinker with (if you wish):
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Windows.Forms
Imports System.Drawing
Imports System.ComponentModel
Namespace ResearchAndDevelopment
    Public Class Marquee
        Inherits Panel
        Private _x As Double = 5
        Private _Timer As Timer = Nothing
        Public Sub New()
            Me.SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.UserPaint Or ControlStyles.SupportsTransparentBackColor, True)
            Me.BorderStyle = BorderStyle.Fixed3D
            Me.BackColor = SystemColors.ControlDarkDark
            _Timer = New Timer()
            _Timer.Enabled = False
            _Timer.Interval = 10
            AddHandler _Timer.Tick, AddressOf _Timer_Tick
        End Sub
        Private Sub _Timer_Tick(ByVal sender As Object, ByVal e As EventArgs)
            _x += 0.8
            If _x > Me.ClientSize.Width Then
                _x = 5
            End If
        End Sub
        Protected Overloads Overrides Sub OnPaint(ByVal e As PaintEventArgs)
            Dim y As Integer = CInt(((Me.ClientSize.Height - TextRenderer.MeasureText("W", Me.Font).Height) / 2))
            Using brush As New SolidBrush(Me.ForeColor)
                e.Graphics.DrawString(Me.Text, Me.Font, brush, CInt(_x), y)
            End Using
        End Sub
        Private _text As String
        <Browsable(True)> _
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> _
        Public Overloads Overrides Property Text() As String
                Return _text
            End Get
            Set(ByVal value As String)
                _text = value
            End Set
        End Property
        <DefaultValue(GetType(Integer), "500")> _
        Public Property Speed() As Integer
                Return Me._Timer.Interval
            End Get
            Set(ByVal value As Integer)
                Me._Timer.Interval = value
            End Set
        End Property
        <Browsable(False)> _
        Public Shadows Property Enabled() As Boolean
                Return Me._Timer.Enabled
            End Get
            Set(ByVal value As Boolean)
                Me._Timer.Enabled = value
            End Set
        End Property
    End Class
End Namespace

Open in new window


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.