본문 바로가기
C#/Winform

C# / Winform 프로그레스바(Progress Bar) 입니다.

by HyunS_ 2019. 10. 27.
728x90

Winform 프로그레스바 입니다.

 

progress bar

 

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 WinformApp
{
	public partial class MainForm : Form
	{
		private int number = 0;
		private string orgString = "";

		/// <summary>
		/// 생성자 입니다.
		/// </summary>
		public MainForm()
		{
			InitializeComponent();

			this.Load				+= mainForm_Load;
			this.button.Click	    += button_Click;
			this.cancelButton.Click += cancelButton_Click;
			
		}

		/// <summary>
		/// 진행 버튼 클릭시 동작합니다.
		/// </summary>
		/// <param name="sender">이벤트 발생자 입니다.</param>
		/// <param name="e">이벤트 인자 입니다.</param>
		private void button_Click(object sender, EventArgs e)
		{
			this.timer.Enabled = true;
			this.button.Enabled = false;

			this.timer.Tick += timer_Tick;
		}
		
		/// <summary>
		/// 타이머 틱 이벤트 입니다.
		/// </summary>
		/// <param name="sender">이벤트 발생자 입니다.</param>
		/// <param name="e">이벤트 인자 입니다.</param>
		private void timer_Tick(object sender, EventArgs e)
		{
			number++;

			if(number > 100)
			{ 
				this.timer.Enabled = false;
				this.button.Enabled = true;
				return ;
			}

			this.progressBar.Value = number;
			this.label.Text = orgString + number.ToString() + "%";
		}

		/// <summary>
		/// 폼 로드시 동작합니다.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mainForm_Load(object sender, EventArgs e)
		{
			this.orgString = this.label.Text;
		}


	}
}
728x90

댓글