Порядок слоев компонентов пользовательского интерфейса WinForm

когда мы добавляем любой пользовательский интерфейс или контейнер в WinForms, более поздний добавленный компонент приходит к более ранним добавленным компонентам, мы можем сказать, что он находится на более высоком уровне.

Как изменить порядок слоев или порядок компонентов после добавления компонентов?

4 ответов


Это когда вы загружаете компоненты динамически в коде или в конструкторе? Если в конструкторе вы можете использовать формат - > заказ - > отправить назад и Format - > Order - > Bring to Front команды. отправить обратно и вывести вперед также доступны в контекстном меню при щелчке правой кнопкой мыши элемента управления, а также на панели инструментов" макет", которая должна автоматически отображаться при работе в конструкторе форм.


когда вы размещаете более одного элемента управления в одном месте, один окажется сверху, а другой-снизу.Обычно это является результатом незначительной ошибки, такой как неправильное использование функций закрепления и закрепления для создания изменяемой формы.В некоторых случаях,однако,может потребоваться перекрытие управления для определенного эффекта.

когда перекрытие управления, это Z-индекс, который определяет, какой элемент управления заканчивается сверху.По сути,каждый элемент управления existy в свой особый пронумерованный слой.Элемент управления с Z-индексным слоем 1 появится над элементом управления в Z-индексном слое 2, если они перекрываются.Обычно z-индекс группы элементов управления определяется порядком добавления элементов управления, так что последний элемент управления всегда находится в самом верхнем слое (с Z-индексом 0).

однако вы можете изменить эти параметры.

определить или задать Z-индекс элемента управления , вы можете использовать GetChildIndex() и SetChildIndex() методы сбора контроля.Вот пример, который перемещает элемент управления на третий слой в Z-индексе.

Controls.SetChildIndex(ctrl, 2);

как правило, вам не понадобится этот вид зернистого контроля.Вместо этого вы просто хотите удалить элемент управления в конец z-индекса (самый нижний слой) или принести его наверх.Вы можете выполнить эту функцию во время разработки, щелкнув правой кнопкой мыши на элементе управления и выбрав принести Fron или отправить назад.Вы также можете выполнить ту же задачу с помощью Control.BringToFront() или Control.SendToBack() методы.

ctrl.BringToFront(); // This is equivalent to Controls.SetChildIndex(ctrl,0);

в представлении конструктора вы также можете открыть панель "контур документа", чтобы просмотреть древовидную структуру текущей формы/элемента управления, а затем перетащить компоненты вокруг," вверх "и" вниз", чтобы привести к передней и задней, а также В и из контейнеров.


вы пробовали играть с Z-Order ?

Читайте Также: управление.SentToBack метод-большинство элементов управления Winform должны поддерживать это.