Как установить Z-порядок использования Управления WinForms

Я пишу пользовательское TextBox это после получения фокуса изменяет его стиль границ.

Поскольку добавление границы заставляет управление накладываться с теми, которые граничат с ним, я временно выявляю текстовое поле диалогового окна (использование textBox.BringToFront()).

Однако, после того как редактирование завершено, и фокус потерян, я хотел бы передать управление обратно его исходному положению в Z-порядке.

Это возможное (предпочтительно простым способом!)

31
задан g t 9 July 2010 в 13:55
поделиться

2 ответа

Вызовите методы GetChildIndex и SetChildIndex родительской коллекции Controls.

40
ответ дан 27 November 2019 в 21:59
поделиться

Здесь нет Z-порядка, как в VB, но вы можете использовать методы GetChildIndex и SetChildIndex для получения и установки их индексов вручную.

Здесь есть пример того, как это использовать. Вероятно, вам придется вести запись индекса каждого элемента управления, чтобы вы могли установить его обратно, когда работа с ним будет завершена.

Возможно, вам нужно что-то вроде этого:

// Get the controls index
int zIndex = parentControl.Controls.GetChildIndex(textBox);
// Bring it to the front
textBox.BringToFront();
// Do something...
// Then send it back again
parentControl.Controls.SetChildIndex(textBox, zIndex);
26
ответ дан 27 November 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: