Я пишу пользовательское TextBox
это после получения фокуса изменяет его стиль границ.
Поскольку добавление границы заставляет управление накладываться с теми, которые граничат с ним, я временно выявляю текстовое поле диалогового окна (использование textBox.BringToFront()
).
Однако, после того как редактирование завершено, и фокус потерян, я хотел бы передать управление обратно его исходному положению в Z-порядке.
Это возможное (предпочтительно простым способом!)
Вызовите методы GetChildIndex
и SetChildIndex
родительской коллекции Controls
.
Здесь нет 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);