Programming/C# - Window
C#/ 프로그레스 바(progress bar) 사용
esoog Polaris
2023. 12. 2. 21:48
# 상태라인 표시 함수
// 프로그레스바 winform ui 스레드 처리
public void UpdateProgressBar(int value)
{
if (progressBar1.InvokeRequired)
{
progressBar1.Invoke(new Action<int>(UpdateProgressBar), value);
}
else
{
progressBar1.Value = value;
}
}
* winform UI 특성 상의 크로스 스레드 문제를 해결하기 위해 .InvokeRequired 함수를 사용.
# 함수를 사용하여 프로그레스바 사용하기
private void UseProgressBar_Click(object sender, EventArgs e)
{
// 프로그레스바가 우측하단에 위치하도록 설정
frmProgressbar progressbar = new frmProgressbar();
progressbar.StartPosition = FormStartPosition.Manual;
Screen screen = Screen.PrimaryScreen;
int x = screen.WorkingArea.Right - progressbar.Width - 5; // 5은 여백
int y = screen.WorkingArea.Bottom - progressbar.Height - 5; // 5은 여백
progressbar.Location = new Point(x, y);
progressbar.Show();
progressbar.UpdateProgressBar(0);
progressbar.UpdateProgressBar(30);
progressbar.UpdateProgressBar(60);
progressbar.UpdateProgressBar(100);
progressbar.Close();
}
반응형