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.Alignment에Right
  2. 설정 MyStatusStrip.LayoutStyle에HorizontalStackWithOverflow

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) 만 가질 수 있습니다.

세 번째 중간 셀을 추가하고 여기에 채우기 속성을 지정하여보다 일관성있는 상태 표시 줄을 얻을 수도 있습니다. 메시지의 왼쪽 오른쪽에 예상했던 부분이 삽입되어 있기 때문에 일관성이 있습니다. StatusBars 의 MSDN 페이지 에있는 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.