netlib.narod.ru< Назад | Оглавление | Далее >

Z-порядок

Я уже ссылался на z-порядок группы элементов управления, являющихся дочерними элементами формы. Термин z-порядок (z-order) относится к трехмерному пространству координат, в котором по осям х и у откладываются горизонтальные и вертикальные координаты, а ось z перпендикулярна экрану.

Очевидно, что z-порядок влияет на внешний вид перекрывающихся элементов управления, имеющих общий родительский элемент управления. Наблюдать z-порядок можно в программе TwoButtonsAnchor, если сделать окошко таким маленьким, чтобы кнопки перекрывались. Кнопка Larger оказывается поверх кнопки Smaller. Кроме того, z-порядок определяет последовательность, в которой располагаются элементы управления, пристыкованные к одному краю формы.

Z-порядок зависит от порядка установки свойств Parent элементов управления или очередности добавления элементов в набор элементов управления. Z-порядок создается программно и может быть изменен только программно. Щелчки пользователя по элементам управления его не изменяют.

Я сам часто путаю, что такое «вершина» и «низ» z-порядка, так что давайте четко это определим. Свойства элемента управления на вершине z-порядка таковы:

Свойства элемента управления, находящегося в низу z-порядка, таковы:

Помимо метода SetChildIndex, реализованного в классе Control.ControlCollection, контейнер может изменять z-порядок дочерних элементов, используя следующие методы:


Методы Control (выборочно)



Метод Описание

void BringToFront() Помещает элемент управления на вершину z-порядка
void SendToBack() Помещает элемент управления в низ z-порядка


Допустим, у формы есть три дочерних элемента управления: btn1, btn2 и btn3. При этом btn1 — на вершине, а btn3 — в низу z-порядка. Тогда метод:

  btn3.BringToFront()

поместит btn3 на вершину z-порядка, а btn2 вниз z-порядка. Это не то же, что:

  btn1.SendToBack()

В этом случае btn2 окажется на вершине z-порядка, а btn1 внизу.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz