2017-12-03 32 views
0

시나리오 나는 콤보 박스의 선택에 따라 3 개의 패널을 보여야한다. 각 패널은 정확한 위치에 설계되었으며 세 개의 패널 모두 정확히 겹치고 일부는 부분적으로 표시 될 수도 있습니다. 그러나 Top 및 Left 속성은 동일합니다.서로 겹치는 패널을 서로의 자식이되는 것을 중지하는 방법은 무엇입니까?

문제 패널을 드래그하면 다른 두 개의 자식 중 하나가됩니다. .parent.name을 통해 확인했습니다. 한 패널을 숨기면 pnlRSB1을 말하면 pnlRSB2도 사라집니다.

재귀 루프를 사용하여 문제를 해결했지만 사용할 수있는 다른 옵션을 알고 싶습니다.

IDE에 "내가 기본 패널의 자식으로 만들지 않습니까?"라고 말할 수있는 방법이 있습니까?

B.T.W 누군가가 루프 솔루션을 원한다면 나는 그것을 제공 할 것이지만 지금 당장 살고 있지만 재귀는 싫어.

답변

0

해결책은 그들을 끌지 않는 것입니다. 양식 3에 Panels 세 개를 모두 추가하기 만하면됩니다. 그 중 하나를 드래그하여 LocationSize을 원하는대로 설정 한 다음 속성 창을 통해 다른 두 값을 동일한 값으로 설정하십시오.

한편, 하나의 Panel은 다른 쪽 범위 내에 놓으면 다른 하나의 자식이됩니다. 부모는 드롭 할 때 마우스 포인터 아래에있는 모든 컨트롤이됩니다.

Location에 동일하고 Size이 있어도 디자이너의 각 Panel에 쉽게 액세스 할 수 있습니다. 액세스하려는 파일이 앞에 오도록 z 순서를 변경하면됩니다. 이를 수행하는 데는 여러 가지 방법이 있습니다.

  1. Panel을 마우스 오른쪽 버튼으로 클릭하고 Send to Back을 선택하십시오. 접근하고자하는 Panel이 앞으로 나올 때까지 반복하십시오.
  2. 속성 창을 열고 상단의 드롭 다운 목록에서 액세스 할 Panel을 선택하십시오. Panel 자체가 가려져 있어도 Panel 주위에 선택 사각형이 그려집니다. 선택 사각형을 마우스 오른쪽 단추로 클릭하고 Bring to Front을 선택하십시오.
  3. 문서 개요 창을 열고 트리에있는 다른 항목 위에 액세스하려는 Panel을 드래그하거나 선택하고 도구 모음을 사용하여 위로 이동하십시오. 트리에서 하위 컨트롤의 순서는 z 순서와 일치합니다.
+0

대단히 감사합니다. 문제가 해결되었습니다. 속성 드롭 다운 목록에서 필수 패널을 선택합니다. 하나 더, 패널 (cboMethod.selectedIndex) .Show() : 같은 컨트롤 배열을 가질 수 있습니다. –

+0

컨트롤 배열에 대한 디자이너 지원은 VB.NET에서 필요하지 않기 때문에 VB.NET에서 존재하지 않습니다 . VB6에서 그 이유는 단일 메서드로 여러 컨트롤에 대한 이벤트를 처리하기 위해서입니다. 이는 VB.NET의 단일 Handles 절에 여러 컨트롤을 추가하여 수행됩니다.이 작업은 속성 창을 통해 또는 코드에서 수동으로 수행 할 수 있습니다. 컨트롤 배열은 VB.NET의 다른 배열과 같으므로 다른 배열처럼 코드로 만들어집니다. – jmcilhinney