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


93

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

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

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


4
Spring 속성이 true로 설정된 레이블 도구 모음 항목을 만듭니다. 세부 정보 : dotnetperls.com/statusstrip (PS 예, 이전 질문이라는 것을 알고 있습니다.)
Nick Alexeev

답변:


228

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

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


28
이것은 (기본값)StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table
AZ 인

13
좋은. 양쪽에 Spring이있는 StatusStripLabel이 컨트롤의 중앙에 나타납니다
mcdon

나는 이것을하는 "진짜"방법이 있었으면 좋겠다. 그러나 이것은 매우 고맙다. Alignment내 응용 프로그램에서 아무것도하지 않았기 때문에 속성이 무엇을하는지 궁금 합니다.
TheGateKeeper 2014-06-20

2
Alignment 속성이 어떤 속성을 보지 못하는지 궁금 합니다.
TaW

이렇게하면 "Spring"레이블 뒤에 한 항목 만 허용되고 다른 항목은 표시되지 않으며 대신 @VBobCat 메서드를 사용합니다.
Pablo Carrasco Hernández

14

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

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

5

추가 된 참고 사항은 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


이는 완전히 관리되는 코드 인 StatusStrip이 아닌 StatusBar에 대해 유효합니다.
Filip Navara

3

아래 논리를 사용하여 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);

세 번째 중간 셀을 추가하고 여기에 채우기 속성을 부여 하십시오.
TaW

2

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


1

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

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


-2

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

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

    toolStripStatusLabel1.Text ="";

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


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.