2009-10-13 4 views
9

상태 표시 줄에 2 ToolStripStatusLabel이있는 양식이 있고 그 뒤에 ToolStripProgressBar이옵니다. 진행률 표시 줄은 항상 상태 표시 줄 오른쪽에 고정되어 이되도록합니다. 따라서 창 크기를 조정하거나 최대화 할 때 /repaint으로 자동 이동해야합니다. StatusBar (StatusStrip) 오른쪽의 앵커 ToolStripProgressBar

나는이 사실에 (왼쪽 정렬) 1 ToolStripStatusLabelSpring 속성을 설정하는 것처럼 간단 할 것이라고 생각, 그래서 폼의 크기를 조정할 때/1 ToolStripStatusLabel 채울 것입니다 크기가 증가, 사용 가능한 공간이 자동으로 ToolStripProgressBar을 오른쪽으로 밀어 넣습니다.

뿐만 아니라 않는 내가하고 싶은 일을하지 않는 것이 - 1 ToolStripStatusLabel 실제로 모두 2 StatusLabelProgressBar, 기본적으로 전체 상태 표시 줄을 차지하는를 다룹니다. ToolStrip 컨트롤에는 앵커 또는 MinSize가 없습니다. 나는 어떻게 SO

:

  1. 앵커 상태 바의 오른쪽에있는 ToolStripProgressBar (StatusStrip)는
  2. 일부 고정 된 크기 항목을 혼합 (예 : ToolStripStatusLabel2ToolStripProgressBar)을 가변적으로는 ToolStripStatusLabel1 크기의 그 때 성장 여분의 공간이 있습니까?

미리 감사드립니다.

는 ~ 관심이있을 수있는 .. 코드 만 (안 디자이너) ...하지만 어떤 경우에, 그것이 작동하지 않지만 앵커 속성이 가능한 모든 들어 IM

답변

4

.. 나는 버그를 떠나 커넥트 (Connect)에 접속하여 메시지와 함께 일반적인 WillNotFix를 얻었습니다. 주요 개정판으로 만 고려할 것임을 나타냅니다.

어떤 이유로 "봄"속성이 엉뚱한 것 같습니다. 내 초현실적 인 예제에서는 작동하지만 일부 사용자 지정 그림을 할 다른 곳에서는 (그러나 하위 양식에서 MDIPArent, 후자 ht eStatusBar를 가짐) 그렇지 않습니다. 이러한 경우에도 여전히 간단한 해결 방법이 있습니다. MDParent Form (상태 표시 줄이 있음)의 ReSize 이벤트에서 StatusLabel의 크기를 변경하여 너비를 변경 한 것과 동일한 비율로 만들 수 있으므로 ProgressBar 상태 표시 줄의 오른쪽 가장자리에

13

간단한 해결책이 있습니다. 하나의 가짜 ToolStripStatusLabel을 만들고 .Text를 비우고 .Spring = true;

그런 다음 ToolStripProgressBar를 추가하십시오. 순서가 레이블인지 먼저 확인한 다음 진행 표시 줄인지 확인하십시오.거짓

toolStripProgressBar.AutoSize = false;

다음

가입 statusStrip의 크기 변경 이벤트에

3

먼저 변화 자동 크기 조정

statusStrip1.SizeChanged += statusStrip1_SizeChanged;

마지막으로 이벤트 핸들러의 막대의 너비를 변경

private void statusStrip1_SizeChanged(object sender, EventArgs e) 
{ 
    toolStripProgressBar.Width = statusStrip1.Width - 95; 
} 
관련 문제