# 상태라인 표시 함수
// 프로그레스바 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();
}
반응형
'Programming > C# - Window' 카테고리의 다른 글
C#/ 싱글톤 디자인 패턴 구현(singleton design pattern) (0) | 2023.12.02 |
---|---|
C#/ 트레이 아이콘 사용 (0) | 2023.12.02 |
C#/ 프로그램 자동 업데이트 (Clickonce) (4) | 2023.12.01 |
C#/ 엑셀(excel) 사용하기 (0) | 2023.11.29 |
C#/ SMTP(이메일 보내기) (0) | 2023.11.29 |