Практическое руководство. Управление поведением закрепления
Обновлен: Ноябрь 2007
Порядок, в котором элементы управления добавляются на форму, может повлиять на расположение элементов на экране, если используется закрепление. Элементы управления не всегда отображаются на экране необходимым образом, если не добавлять их в правильном порядке.
Порядок, в котором элементы управления добавляются на форму, влияет на z-порядок и, если несколько элементов управления закреплены в родительском элементе, z-порядок определяет логику размещения элементов. Элемент управления, добавленный к родительскому элементу первым, размещается в нижней части z-порядка, а элементы, добавленные после, располагаются сверху. При попытке разместить элемент управления рядом с другим, закрепив их у одной области в родительском элементе управления, элемент, который располагается дальше в z-порядке, в результате отображается первым. Например, если свойству Dock двух элементов управления присвоено значение Top, обычно элемент, располагающийся дальше по z-порядку, отображается сверху родительского элемента управления.
Однако, если свойству Dock элемента управления присвоено значение Fill, это может привести к тому, что один элемент управления скроет другой. Например, если два элемента управления, добавленные к форме в неверном порядке, могут отобразиться в верхней части экрана, при этом один скроет другой, хотя предполагалось, что только один элемент должен располагаться в этом месте.
Если возникает проблема с размещением, необходимо исправить z-порядок затронутых элементов управления. Для решения этой проблемы требуются различные действия в зависимости от того, использовался ли конструктор при добавлении элементов к форме.
Управление структурой закрепления
Исправьте порядок, в котором элементы управления добавляются к форме.
Изучите пример, в котором элементы управления TreeView и Button программными средствами добавляются в элемент управления Panel. Свойству Dock элемента управления TreeView присваивается значение Fill, а свойству Dock элемента управления Button присваивается значение Top. Элемент управления TreeView частично перекрывает элемент Button. Код, в котором элементы управления TreeView и Button добавляются к Panel, может выглядеть следующим образом:
this.panel1.Controls.Add(this.button1); this.panel1.Controls.Add(this.treeView1);
Чтобы решить проблему, измените порядок, в котором эти элементы управления добавляются в панель.
this.panel1.Controls.Add(this.treeView1); this.panel1.Controls.Add(this.button1);
Также можно использовать метод BringToFront или SendToBack одного из элементов управления.
Управление структурой закрепления с использованием конструктора
Выберите один из элементов управления, располагающийся в неверной части формы.
В зависимости от требуемой структуры щелкните правой кнопкой элемент управления и выберите пункт На задний план.
—или—
Щелкните правой кнопкой мыши элемент управления и выберите пункт На передний план.
Если используются дополнительные элементы управления, надо при необходимости повторить шаг 2 для других элементов до тех пор, пока не будет получен желаемый результат.
Примечание. |
---|
Если используется несколько элементов управления, для управления z-порядком рекомендуется использовать окно "Структура документа". |