Introduction
You can't just drop a progress bar control into a status bar panel, so I made this. This is actually the second time I've had to do this, so I got fed up and wanted to drop the code here so nobody would have to do it again.
Using the code
First thing to do is just drop a status bar on your form, and create a Panel
or two. You can mess around with the panel settings afterwards, but the easiest thing to do is select Owner-Draw on the status bar panel that you want to be the progress bar from the very beginning.
private StatusBarProgressPanel progressPanel;
progressPanel.StartPoint = 0;
progressPanel.EndPoint = 100;
progressPanel.StepSize = 1;
progressPanel.ProgressPosition = 0;
Of course, once you change the type, you can change the properties using the Visual Studio Designer by simply clicking the "..." button of the Panel
's property when the status bar is selected in the form designer. I've included some handy category attributes for Visual Studio's nifty reflection logic to pick up.
progressPanel.Step();
progressPanel.Reset();
progressPanel.StartAnimation();
progressPanel.StopAnimation();
progressPanel.ShowText = false;
You may also change the AnimationStyle
of the control. This basically controls the way the indicator is filled and emptied. The default is ProgressDisplayStyle.Infinate
which is a pulsating draw style. Much cooler graphics can be used, just modify the Parent_DrawItem
method.
public enum ProgressDisplayStyle
{
Infinite,
LeftToRight,
RightToLeft,
BottomToTop,
TopToBottom
}
History
- 7/1/2004 - Initial revision.