none
Progressbar Special Effect RRS feed

  • Question

  • Hello All,

    I'm not sure how to explain this, but heregos:

    My computer crashed, I reinstalled VS2012. I have some progress bars in my application that I want to display the green progress bar, but also want the special (left to right) movement effect in the progressbar. I had it sometime back but don't know how I got it and how to get it back.

    Screenshot:


    ADawn

    Thursday, January 25, 2018 2:13 PM

All replies

  • It is the Marquee style (ProgressBarStyle Enumeration)

    Thursday, January 25, 2018 2:17 PM
  • I have Marquee style and I get the green progress bar advancing while the code is running, but I don't get the display that I circled in the image above that is running through the progress bar (if that makes since).

    ADawn

    Thursday, January 25, 2018 3:48 PM
  • I have Marquee style and I get the green progress bar advancing while the code is running, but I don't get the display that I circled in the image above that is running through the progress bar (if that makes since).

    ADawn

    Hi tropicwhisper,

    One style is blocks, one is Marquee, which do you want to use?

    ProgressBar1.Style = ProgressBarStyle.Blocks

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            With Button1
                .Text = "Start ProgressBar"
            End With
            Button1.Enabled = False
            With ProgressBar1
                .Style = ProgressBarStyle.Blocks
                .Step = 1
                .Minimum = 0
                .Maximum = 100
                .Value = 0
            End With
            'if you repress the button now, it won't restart now
            Do
                'ALL events in your form will ahve to wait until this loop is completed!
                Threading.Thread.Sleep(100)
                ProgressBar1.PerformStep() 'can't use this if ProgressBar1.Style = ProgressBarStyle.Marquee
    
            Loop Until ProgressBar1.Value >= ProgressBar1.Maximum
            Button1.Enabled = True
            Me.Button1.Text = "finished, press to restart"
    
        End Sub

    ProgressBar1.Style = ProgressBarStyle.Marquee

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    
            With Button2
                .Text = "Start ProgressBar"
            End With
            Button2.Enabled = False
    
            ProgressBar1.Style = ProgressBarStyle.Marquee
            ProgressBar1.MarqueeAnimationSpeed = 30
            Dim bw As BackgroundWorker = New BackgroundWorker()
            AddHandler bw.DoWork, AddressOf bw_DoWork
            AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
            bw.RunWorkerAsync()
        End Sub
    
        Private Sub bw_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
            ProgressBar1.MarqueeAnimationSpeed = 0
            ProgressBar1.Style = ProgressBarStyle.Blocks
            ProgressBar1.Value = ProgressBar1.Maximum
            Button2.Enabled = True
            Me.Button2.Text = "finished, press to restart"
            MessageBox.Show("Done!")
        End Sub
    
        Private Sub bw_DoWork(sender As Object, e As DoWorkEventArgs)
            Thread.Sleep(5000)
        End Sub

    Best Regards,

    Cherry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Friday, January 26, 2018 6:17 AM
    Moderator
  • Maybe I'm not clear. Please look at the picture I posted and you will see within the circle I drew an animated (thing) that goes from left to right within the green progress bar area. No matter which Progressbar.Style I use I cannot I get this effect.

    ADawm


    ADawn

    Thursday, February 1, 2018 12:36 AM
  • Maybe I'm not clear. Please look at the picture I posted and you will see within the circle I drew an animated (thing) that goes from left to right within the green progress bar area. No matter which Progressbar.Style I use I cannot I get this effect.

    ADawm


    ADawn

    No I think you are not clear, what kind of application is this Windows forms, WPF, 3th party, ....?

    Success Cor

    Thursday, February 1, 2018 10:10 AM
  • Cor,

    It is a windows desktop application built with vs2012.

    Thanks,

    ADawn


    ADawn

    Friday, February 2, 2018 1:41 PM
  • Cor,

    It is a windows desktop application built with vs2012.

    Thanks,

    ADawn


    ADawn

     You have not mentioned,  did you re-install the same OS version?  What version?

     Did you by any chance un-check the (Use XP visual styles) option in your application's properties?

     Perhaps others could add input here because,  i only have Win7 but,  i know windows 8 and 10 use a flat bland looking 'metro' type theme and i am not sure if they use this special effect for progressbar controls or not.  Maybe they do,  maybe they don't.


    If you say it can`t be done then i`ll try it

    Friday, February 2, 2018 8:04 PM
  • Here is Windows 10 with xp styles enabled, block, continuous, marquee from top to bottom. This is just with the value = 50.

    So it appears the marquee style is different from win 7 to 10.

    This is win10 without xp styles enabled.

    PS This is Windows 7 below.

    Friday, February 2, 2018 10:02 PM
  • Here is one made from a label (bottom).

    'windows 7 marquee progressbar using a label
    Imports System.Drawing.Drawing2D
    
    Public Class Form2
        Private WithEvents timer1 As New Timer With {.Enabled = True, .Interval = 100}
        Private SpotX As Integer
    
        Private Sub Label1_Paint(sender As Object, e As PaintEventArgs) Handles Label1.Paint
    
            With e.Graphics
                .Clear(Color.White)
                Dim rect As Rectangle = Label1.ClientRectangle
    
                'highlight
                Dim colors As Color() = {Color.FromArgb(30, Color.Lime)}
                Dim r As Integer = CInt(2 * rect.Height)
                Using pthHighlight As New Drawing2D.GraphicsPath()
                    pthHighlight.AddEllipse(SpotX, CInt(-r / 3), 2 * r, r)
                    Using pthHighlightBr As New Drawing2D.PathGradientBrush(pthHighlight)
                        pthHighlightBr.CenterColor = Color.Lime
                        pthHighlightBr.SurroundColors = colors
                        .FillPath(pthHighlightBr, pthHighlight)
                    End Using
                End Using
    
                'background shadows
                Using pth As New Drawing2D.GraphicsPath(),
                    lgbr As New LinearGradientBrush(rect, Color.White, Color.FromArgb(150, SystemColors.ControlDark), 90)
    
                    Dim myFactors As Single() = {0.0F, 0.4F, 0.8F, 0.8F, 0.4F, 0.2F}
                    Dim myPositions As Single() = {0.0F, 0.1F, 0.4F, 0.6F, 0.9F, 1.0F}
                    Dim myBlend As New Blend
                    myBlend.Factors = myFactors
                    myBlend.Positions = myPositions
                    lgbr.Blend = myBlend
                    pth.AddRectangle(rect)
                    .FillPath(lgbr, pth)
                End Using
    
                .DrawRectangle(New Pen(SystemColors.ControlDark, 1), rect)
    
            End With
        End Sub
    
        Private Sub timer1_Tick(sender As Object, e As EventArgs) Handles timer1.Tick
            SpotX += 6
            If SpotX > Label1.Width + (Label1.Width / 2) Then
                SpotX = -CInt(Label1.Width + (Label1.Width / 2))
            End If
    
            Label1.Invalidate()
    
        End Sub
    End Class

    Saturday, February 3, 2018 9:59 PM
  •  Hi Tom, 

     I believe it is just the white flash that periodically runs through the green progressbar that OP is saying they don.t seem to have.  I don.t think it is actually a Marque style progress that they want.  I can see in your second to last post that your Windows 10 progressbar has that fancy 'white flash' that runs across it (Image below) so,  apparently 8 and 10 both have that too.  Although,  I still think the Windows 7 progressbar looks much better.  8)

     At this point I don't know if OP is doing something with the progressbar to make it not show the 'white flash' or if it could be a corrupt installation of VS or OS that might be at fault.

     

     


    If you say it can`t be done then i`ll try it

    Sunday, February 4, 2018 12:07 PM
  • Maybe I'm not clear. Please look at the picture I posted and you will see within the circle I drew an animated (thing) that goes from left to right within the green progress bar area. No matter which Progressbar.Style I use I cannot I get this effect.

    The animation can be disabled with the TurnOffSPIAnimations value in registry

    But it would be weird that it has been set automatically.

    Sunday, February 4, 2018 12:36 PM
  • Thanks for the demonstration of each. I'm running vs2012 on Win-10 x64.

    I've tried each of the above (but will try again) and I do have XP Stypes Enabled flagged.

    ADawn


    ADawn

    Sunday, February 4, 2018 10:35 PM