[c#] StatusStrip에서 컨트롤을 오른쪽 정렬하려면 어떻게합니까?

컨트롤을 StatusStrip. 어떻게 할 수 있습니까?

ToolStripItem부모에 대한 물리적 정렬을 지정하는 컨트롤 에 설정할 속성이 표시되지 않습니다 StatusStrip.

메시지 드롭 다운이 올바르게 정렬되도록하려면 어떻게합니까? http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90



답변

게시 직후 MSDN 포럼을 통해 찾았습니다. 🙂

당신은을 사용할 수 있습니다 ToolStripLabel설정에 따라 올바른 정렬 제어를하여 유사하기 Text에 속성을 string.Empty하고, 설정 Spring에 대한 속성을 true. 이렇게하면 사용 가능한 공간이 모두 채워지고 모든 컨트롤이 오른쪽으로 밀 ToolStripLabel립니다.


답변

저에게는 두 가지 간단한 단계가 필요했습니다.

  1. 설정 MyRightIntendedToolStripItem.AlignmentRight
  2. 설정 MyStatusStrip.LayoutStyleHorizontalStackWithOverflow

답변

추가 된 참고 사항은 Win32 API에서 셀이 고정 너비이거나 나머지 공간을 채운다는 사실 때문입니다 -1

int statwidths[] = {100, -1};

SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);
SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Hi there :)");

메모리가 제대로 작동한다면 상태 표시 줄당 하나의 채우기 셀 (-1) 만 가질 수 있습니다.

세 번째 중간 셀을 추가하고 여기에 채우기 속성을 지정하여보다 일관성있는 상태 표시 줄을 얻을 수도 있습니다. 메시지의 왼쪽 오른쪽에 예상했던 부분이 삽입되어 있기 때문에 일관성이 있습니다. StatusBarsMSDN 페이지 에있는 mspaint 샷과 약간 비슷합니다.

나는 창의적인 접근을 좋아한다 : D


답변

아래 논리를 사용하여 Button끝에를 표시 할 수 있습니다 StatusStrip.

  1. a를 ToolstripLabel받는StatusStrip
  2. 텍스트 설정 string.Empty
  3. 설정 Padding에 대한ToolstripLabel

예를 들면 :

this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);


답변

Toolstrip 레이블을 유지하고 Spring 속성을 true로 설정하고 BottomLeft의 레이블 정렬 텍스트에 대해


답변

StatusStrip 레이아웃을 HorizontalStackWithOverflow로 설정할 수 있음을 발견했습니다. 그런 다음 오른쪽에서 원하는 StatusStrip의 각 컨트롤에 대해 컨트롤 맞춤을 오른쪽으로 설정합니다.

정렬하기 위해 추가 또는 더미 컨트롤이 필요하지 않기 때문에 더 좋습니다.


답변

에서 컨트롤의 위치를 ​​설정하는 일반적인 방법을 찾습니다 StatusStrip. StatusStrip아래 단계를 사용하여의 모든 위치에 버튼을 표시 할 수 있습니다 .

  1. StatusStrip에 ToolstripLabel 추가
  2. 텍스트를 적당한 공간으로 설정하십시오.

    toolStripStatusLabel1.Text ="";

  3. 레이아웃이 원하는 것이 아닌 경우 2 단계로 이동하여의 공간 크기를 변경하고 toolStripStatusLabel1.Text그렇지 않으면 작업이 완료된 것입니다.