ARTICLE

ProgressBar in C#

Posted by Mahesh Chand Articles | Windows Controls C# February 22, 2000
You need progress bars to display the progress of your application or background tasks.
Reader Level:

A ProgressBar control is used to represent the progress of a lengthy operation that takes time where a user must wait for the operation to be finished.

In this article, we will see how to create a ProgressBar control in a Windows Forms application using Visual Studio 2010. We will also discuss the properties and methods defined in the ProgressBar class.

Creating a ProgressBar

We can create a ProgressBar control using a Forms designer at design-time or using the ProgressBar class in code at run-time.

Design-time

To create a ProgressBar control at design-time, you simply drag a ProgressBar control from the Toolbox and drop onto a Form in Visual Studio. After you the drag and drop, a ProgressBar is created on the Form; for example the ProgressBar1 is added to the form and looks as in Figure 1.

ProgressBarImg1.jpg 

Figure 1

Run-time

Creating a ProgressBar control at run-time is merely a work of creating an instance of the ProgressBar class, set its properties and add the ProgressBar class to the Form controls.

The first step to create a dynamic ProgressBar is to create an instance of the ProgressBar class. The following code snippet creates a ProgressBar control object:

C# Code:

ProgressBar pBar = new ProgressBar();

 

VB.NET Code:

 

Dim pBar As New ProgressBar()

 

In the next step, you may set the properties of the ProgressBar control. The following code snippet sets the Location, Name, Width, and Height properties of a ProgressBar.

C# Code:

pBar.Location = new System.Drawing.Point(20, 20);

pBar.Name = "progressBar1";

pBar.Width = 200;

pBar.Height = 30;

 

VB.NET Code:

 

pBar.Location = New System.Drawing.Point(20, 20)

pBar.Name = "progressBar1"

pBar.Width = 200

pBar.Height = 30

 

Once the ProgressBar control is ready with its properties, the next step is to add the ProgressBar to a Form. To do so, we need to add the ProgressBar control to the form using the Controls.Add method as in the following.

 

C# Code:

Controls.Add(pBar);

 

VB.NET Code:

 

Controls.Add(pBar)

Setting ProgressBar Properties

After you place a ProgressBar control on a Form, the next step is to set the properties.

The easiest way to set the properties is from the Properties Window. You can open the Properties window by pressing F4 or right-clicking on a control and selecting the "Properties" menu item. The Properties window looks as in Figure 2.

ProgressBarImg2.jpg
Figure 2

Name

The Name property represents a unique name of a ProgressBar control. It is used to access the control in the code. The following code snippet sets and gets the name and text of a ProgressBar control.

C# Code:

PBar.Name = "ProgresBar1";

 

VB.NET Code:

 

PBar.Name = "ProgresBar1"

Positioning a ProgressBar

We can use the Location property to position a control. We can also dock a control using the Dock property.

Note: A ProgressBar can only be positioned horizontally.

The Dock property is used to set the position of a ProgressBar. It is of the type DockStyle that can have values Top, Bottom, Left, Right, and Fill. The following code snippet sets the Location, Width, and Height properties of a ProgressBar control.

C# Code:

pBar.Dock = DockStyle.Bottom;

 

VB.NET Code:

 

PBar.Dock = DockStyle.Bottom

Minimum, Maximum, and Value

The Minimum and Maximum properties define the range of a ProgressBar. The Value property represents the current value of a ProgressBar. The current value of the ProgressBar for the minimum value is the color green to show the progress of the control. We can also use the Value property to show the progress of an operation.

C# Code:

pBar.Minimum = 0;

pBar.Maximum = 100;

pBar.Value = 70;

 

VB.NET Code:

 

PBar.Minimum = 0

PBar.Maximum = 100

PBar.Value = 70

 

A ProgressBar with a value looks as in Figure 3.

 

ProgressBarImg3.jpg
Figure 3

RightToLeftLayout and MarqueeAnimationSpeed

The default progress of a ProgressBar is from left to right. But the ProgressBar control can also show the progress from right to left by setting RightToLeftLayout to true. The MarqueeAnimationSpeed property represents the time period, in milliseconds, that it takes the progress block to scroll across the progress bar.

Summary

In this article, we discussed how to create menus using the ProgressBar control. First we discussed how to create menus at design-time and run-time. After that we saw, how to set menus properties and click event handlers.

Login to add your contents and source code to this article
Article Extensions
Contents added by Alan C Balkany on Jun 17, 2009
The article is short and simple, which is good, but it's TOO short and simple.  A working example that can be copied and pasted would make this article infinitely more useful.  Also compiling the code before posting it would allow the typos to be identified and corrected.
post comment
     

according to my personal opinin using progress bar while submiting the data or reciving the data means the time wastage of end user

Posted by Vithal Wadje Jan 24, 2013

Hallo, ich versuche gerade eine ProgressBar in einer eigenen WinForm zu erstellen. Hier mein Ansatz: C#-Code: public partial class RIM_ProgressBar : Form { Thread _thread; int _val; public int Value { set {this._val=value; } get { return this._val; } } public RIM_ProgressBar(int min, int max, int actual) { InitializeComponent(); progressBar1.Minimum = min; progressBar1.Maximum = max; progressBar1.Value = actual; _val = actual; } private void RIM_ProgressBar_Load(object sender, EventArgs e) { _thread = new Thread(new ThreadStart(load)); _thread.Start(); } public void load() { progressBar1.Value = _val; statusStrip1.Text = progressBar1.Value.ToString() + "%omplete"; // Thread.Sleep(10); } public void changeValue(int val) { this._val = val; } } So ruf ich das auf: C#-Code: RIM_ProgressBar rProgBar = new RIM_ProgressBar(0, 100, 0); rProgBar.Show(); for (int i = 0; i < 100; i++) { rProgBar.Value = i; Thread.Sleep(10); } Es funktioniert nicht...

Posted by Puma D Ace Jul 06, 2011

Great article! Here you find another nice article about how to implement a WPF progress dialog: http://www.parago.de/2011/04/how-to-implement-a-modern-progress-dialog-for-wpf-applications/

Posted by Jürgen Bäurle Jun 18, 2011

http://www.csharphelp.com/wp-content/themes/twentyten/images/headers/path.jpg

Posted by Nasir Uddin Apr 28, 2011

For the Below Code, I want to add a progress bar: while data inserted into the another table. It takes 1 to 2 mins, for this I want to show the progress bar till the data completely not inserted


private void button1_Click_1(object sender, EventArgs e)
        {
            SqlConnection conn = null;
            try
            {
                conn = new SqlConnection(@"Data Source=HAIDER-IT;Initial Catalog=csoft;Integrated Security=True");
                conn.Open();
                SqlCommand cmd = new SqlCommand("Search",conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandTimeout = 1800;
                cmd.Parameters.Add("@P_prd", SqlDbType.VarChar, 50).Value = "11";
                cmd.Parameters.Add("@P_rep", SqlDbType.VarChar, 50).Value = "31";
                cmd.Parameters.Add("@P_yy", SqlDbType.VarChar, 50).Value = "2008";
                cmd.Parameters.Add("@P_mm", SqlDbType.VarChar, 50).Value = "04";
                cmd.Parameters.Add("@P_HS", SqlDbType.VarChar, 50).Value = "1";
                int I = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                conn.Close();
            }
          
              MessageBox.Show("Data Inserted");
           
        }

Posted by Sharique Imam Sep 08, 2010
COMMENT USING
PREMIUM SPONSORS
DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and add new content to existing PDF documents from within your applications.
Join a Chapter
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.