C# Project
In this project we will be creating a progress bar in C# using Visual Studio. The progress bar will show progress in percentage, 0% to 100% which you can change by altering the code as per your need.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace CustomProgressBar { public partial class Form1 : Form { Timer t = new Timer(); //pb = ProgressBar double pbUnit; int pbWIDTH, pbHEIGHT, pbComplete; Bitmap bmp; Graphics g; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //get picboxPB dimension pbWIDTH = picboxPB.Width; pbHEIGHT = picboxPB.Height; pbUnit = pbWIDTH / 100.0; //pbComplete - This is equal to work completed in % [min = 0 max = 100] pbComplete = 0; //create bitmap bmp = new Bitmap(pbWIDTH, pbHEIGHT); //timer t.Interval = 50; //in millisecond t.Tick += new EventHandler(this.t_Tick); t.Start(); } private void t_Tick(object sender, EventArgs e) { //graphics g = Graphics.FromImage(bmp); //clear graphics g.Clear(Color.LightSkyBlue); //draw progressbar g.FillRectangle(Brushes.CornflowerBlue, new Rectangle(0, 0, (int)(pbComplete * pbUnit), pbHEIGHT)); //draw % complete g.DrawString(pbComplete + "%", new Font("Arial", pbHEIGHT / 2), Brushes.Black, new PointF(pbWIDTH / 2 - pbHEIGHT, pbHEIGHT / 10)); //load bitmap in picturebox picboxPB picboxPB.Image = bmp; //update pbComplete //Note! //To keep things simple I am adding +1 to pbComplete every 50ms //You can change this as per your requirement :) pbComplete++; if (pbComplete > 100) { //dispose g.Dispose(); t.Stop(); } } } }
namespace CustomProgressBar { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.picboxPB = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.picboxPB)).BeginInit(); this.SuspendLayout(); // // picboxPB // this.picboxPB.Location = new System.Drawing.Point(12, 9); this.picboxPB.Name = "picboxPB"; this.picboxPB.Size = new System.Drawing.Size(470, 50); this.picboxPB.TabIndex = 0; this.picboxPB.TabStop = false; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(494, 71); this.Controls.Add(this.picboxPB); this.Name = "Form1"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Custom ProgressBar"; this.Load += new System.EventHandler(this.Form1_Load); ((System.ComponentModel.ISupportInitialize)(this.picboxPB)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox picboxPB; } }