programing

WinForms에서 도킹 순서를 제어하는 ​​방법

nasanasas 2020. 11. 6. 08:20
반응형

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());

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


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


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

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

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


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

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

FlowLayoutPanel을 사용하면 원하는 작업을 정확하게 수행 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/2607508/how-to-control-docking-order-in-winforms

반응형