Ответ 1
Вызвать GetChildIndex
и SetChildIndex
методы родительской коллекции Controls
.
Я пишу пользовательский 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);