기관실 요금 시스템의 창문이 두루 다니다

2006 단어 데이터베이스
기방 요금 시스템에는 창이 널리 퍼져 있는 것이 있는데, MDI 창이 열리면 다른 창이 자동으로 끝까지 최소화되어 창을 너무 많이 불러오는 불편을 방지할 수 있다.
각 하위 창의 form Activate 이벤트 아래에 다음과 같은 코드가 추가되었습니다.
<<span style="font-size:24px;">span style="font-size:24px;">1</span>.<span style="font-size:24px;">	For Each a In Forms  
2.	   If a.Name <> Form1.Name And a.Name <> frmMain.Name And a.Name <> Me.Name Then  
3.	       a.WindowState = 1  
4.	       Form1.ZOrder 1
5.	       End If  
6.	Next  </span>
</span>

코드의form1은 하위 창을 대표하고frmMain은 부모 창입니다.
그런데 무서운 현상이 생겼어요. 바로 아버지 창의 컨트롤러가 하위 창에 떠올라서 보기만 해도 불편해요. 자꾸 vb가 미친 듯이 쫓아다니는 것 같아서...
그리고 나는 이 코드를 하나하나 보고form1.Zorder 1 이 코드를 form1로 변경합니다.Zorder0은 OK입니다. 그러니 여기서 관련 지식을 공유해 드리겠습니다.
간단하게 말하면 두 개의 같은 등급의 컨트롤러가 같은 곳에 놓여 있고,zorder(0)는 한 컨트롤러를 앞에 표시하여 다른 컨트롤러를 가리고,zorder(1)는 이 컨트롤러를 뒤에 놓아서 원래 가려진 다른 컨트롤러를 앞에 표시할 수 있다.그래서 이전에는 form1의zorder를 1로 설정하면 form1의 창이 앞에 있지만 frmMain의 컨트롤이 앞에 있기 때문에 그 무서운 상황이 나타났는데...
다음은 공식적인 해석이다.
ZOrder는 서로 다른 곳에 사용되는데 두 가지 다른 의미가 있다. 첫째, MDIform의 Child Form에 사용할 때 각각의 Child Form의 상하 위치 관계를 가리킨다.2. 모든 Form의 모든 컨트롤에 사용할 때 모든 컨트롤 항목 간의 상하 위치 관계를 가리킨다.주1: 일반적으로 우리의 2도 평면 좌표축은 X좌표축(동서방향)과 Y좌표축(남북방향)을 가리킨다. 두 축은 하나의 평면을 구성하고 수직의 Z좌표축을 더하면 3도 입체 공간을 구성한다!그래서 ZOrder는 물건이 수직의 Z좌표축에서 상하 위치 관계를 가리킨다.주2: ZOrder는 물건이 수직의 Z좌표축에 있는 상하 위치 관계를 가리킨다.그러나 많은 사람들이 왜 그가 이미 ZOrder를 설정했는지, 왜 일부 컨트롤 항목에서 무효인지 잘 모르겠다.단일 Form 또는 단일 Container의 경우 수직 Z 좌표 축에서 최하위: 그래픽 메소드 결과를 표시하는 드로잉 공간 등 세 가지 계층으로 나뉘기 때문입니다.중간 레이어: Image와 Label 제어 항목을 표시하는 데 사용됩니다.위쪽: CommandButton, CheckBox 또는 ListBox와 같은 모든 비그래픽 제어 항목을 표시합니다.ZOrder는 단일 계층 내의 컨트롤 항목에만 유효합니다!예를 들어 Label 및 Image의 ZOrder를 설정하는 것은 유효한 것입니다. 왜냐하면 모두 중간 층에 있기 때문입니다!Label 및 CommandButton의 ZOrder를 설정하는 것은 서로 다른 층에 있기 때문에 올바르지 않습니다.가장 중요한 것은 ZOrder가 어떻게 설정하든지 간에 위에 있는 물건은 영원히 가운데 있는 물건 위에 있을 것이다!가운데 층에 있는 물건은 영원히 아래 층에 있는 물건 위에 있습니다!
 
 
총결: 우리는 끊임없이 문제를 발견하고 끊임없이 문제를 해결하며 경험을 쌓고 끊임없이 국민을 위해 봉사한다!

좋은 웹페이지 즐겨찾기