Когда вы размещаете более одного элемента управления в одном и том же месте, каждый из них будет сверху, а другой окажется под ним. Обычно это результат незначительной ошибки, например, неправильное использование функций привязки и стыковки для создания изменяемой формы. В некоторых случаях, однако, вам может потребоваться совпадение элементов управления для определенного эффекта.
Когда контроль перекрывается, это z-индекс, который определяет, какой элемент управления заканчивается сверху. По сути, каждый элемент управления существует в своем собственном отдельном пронумерованном слое. Элемент управления, который имеет уровень z-индекса 1, появится над элементом управления в z-index layer 2, если они перекрываются. Обычно z-индекс группы элементов управления определяется порядком, в котором вы добавляете элементы управления, так что последний элемент управления, который вы добавляете, всегда находится в верхнем слое (с z- индекс 0).
Однако вы можете изменить эти параметры.
Чтобы определить или установить z-индекс элемента управления, вы можете использовать методы коллекции Controls GetChildIndex()
и SetChildIndex()
.Это пример, который перемещает элемент управления на третий уровень в z-index.
Controls.SetChildIndex(ctrl, 2);
Как правило, вам не нужен этот вид находки-зернистой control.Instead, вы просто хотите сбросить контроль в задней части Z-индекс (самая нижняя слой) или принести это на вершине. Вы можете выполнить эту функцию во время разработки, щелкнув правой кнопкой мыши на элементе управления и выбрав «Принести в Fron» или «Отправить на задний план». Вы также можете программно выполнить одну и ту же задачу, используя методы Control.BringToFront()
или Control.SendToBack()
.
ctrl.BringToFront(); // This is equivalent to Controls.SetChildIndex(ctrl,0);
Я нашел это полезным. Также обнаружил GetChildIndex, чтобы выяснить во время выполнения, управление которым находится сверху. Спасибо. –