Порядок слоев компонентов пользовательского интерфейса 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 должны поддерживать это.