[c#] WinForms에서 도킹 순서를 제어하는 ​​방법

제목에서 알 수 있듯이 항목이 내 컨트롤 맨 위에 도킹되는 순서를 제어하는 ​​방법을 찾고 있습니다.

나는 윈도우 폼 디자이너를 가지고 놀았고 RightClick->Order->SendToFront, 정확히 내가 원하는 일이기 때문에 그것이 무엇을하고 있는지 찾을 수없는 것 같습니다 . 제가 할 수있는 한, 컨트롤에 콘텐츠를 추가하면 최신 콘텐츠가 항상 맨 위에 있고 최신 콘텐츠가 맨 아래에 있고 가장 오래된 콘텐츠가 맨 위에 오기를 원합니다. 상단.

요약 : WinForms (C #)에서 컨트롤 측면에 도킹되는 순서를 쉽게 제어 할 수있는 방법이 있습니까?

편집 : 컨트롤을 추가 할 때 코드 뒤에서이 작업을 수행해야합니다. WinForm 디자이너의 기능을 사용할 수 없습니다.하지만 제가하려는 것은 WinForms 디자이너SendToBackSendToFront기능을 모방하는 것입니다.



답변

다음 방법을 사용하십시오.

myControl.SendToBack();
myControl.BringToFront();


답변

보기 → 다른 창 → 문서 개요로 이동합니다.

해당 창에서 컨트롤을 끌어 원하는대로 도킹되도록합니다.


답변

말했듯이, 컨트롤 컬렉션에 추가 된 최신 컨트롤이 맨 위에 있습니다. 맨 아래에 새 컨트롤을 추가해야하는 경우 컨트롤 목록을 만들고 목록에 컨트롤을 추가하고 목록을 반전 한 다음 컨트롤 컬렉션에 목록을 추가하는 것이 좋습니다.

List<Control> controls = new List<Control();
controls.Add(new myFirstControl());
controls.Add(new mySecondControl());
controls.Reverse();
this.Controls.AddRange(controls.ToArray());


답변

제어 당신이 찾고있는 무엇을 달성하기 위해 두 가지 방법을 가지고 BringToFrontSendToBack.


답변

컨트롤이 Controls 컬렉션에 추가되는 순서에 따라 도킹 순서가 결정됩니다.


답변

(다른 옵션을 표시하기 위해) : Visual Studio 2012 (이상) :

  1. 앞으로 (또는 뒤로) 이동하려는 컨트롤을 선택하십시오.
  2. 아래 표시된 버튼을 클릭합니다 (맨 앞으로 가져 오기 / 뒤로 보내기).
    여기에 이미지 설명 입력

이렇게하면 컨트롤을 원하는 순서로 재배치 할 수 있습니다.


답변

프로그래밍 방식으로이 작업을 수행 할 때이를 달성하는 매우 쉬운 방법이 있습니다.

containerPanel.Controls.SetChildIndex(Element, 0); //sends element to the bottom of the list