본문으로 바로가기

C# 상태바에 놓여 있는 ProgressBar의 크기를 변경하는 코드

먼저 컨트롤의 크기를 자동조절하지 못하도록 설정한다
toolStripStatus.AutoSize = false;
toolStripProgress.AutoSize = false;
그리고 Form의 Resize 이벤트 핸들러에 다음과 같이 코딩한다.
단 여기서 주의 해야 할 것은 StatusStrip에 놓여진 컨트롤들은 실제 윈도우의 폭이 지정된 폭보다 적으면 컨트롤을 숨긴다.
예를 들어 프로그래스바의 넓이를 설정했을 떼 우측부분이 윈도우의 우측끝을 벗어나게 되면 잘려서 표시되는 것이 아니라 컨트롤 자체를 숨기게 된다.
이부분 때문에 혼란이 있을 수 있으므로 화면사이즈 보다 적게 너비를 설정해야 한다는 것 명심하자.

private void Form_Resize(object sender, EventArgs e)
{
  toolStripStatus.Width = statusStrip.Width / 3; //Progress Bar 앞에 있는 컨트롤의 넓이를 조절        
  toolStripProgress.ProgressBar.Left = toolStripStatus.Bounds.Right+1;//Progress Bar의 위치를 이동하고      
  toolStripProgress.Width = statusStrip.Width - (toolStripStatus.Width+ toolStripTime.Width + 75); //Progress Bar의 폭을 설정한다.          
}