So by moving the value past where you want to set it, then moving it back to where you actually need it, you cut out the progressive animation! ShowDialog ; Get the idea? The workaround was to use the fact that the animation only happens when the ProgressBar is incremented and not when it is decremented. There is an alternative you might want to try which is to have your processing code in the seperate thread, and show the form using ShowDialog from the main UI thread, with an event which fires every so often in the processing code telling it to update its progress control. Refresh ; Also you should really have "ShowInTaskbar" set as false in your form. On clients using the Aero theme, there exists a small lag between the actual value and what is displayed in the WinForms ProgressBar control. Otherwise I'm stuck really without seeing the code.