Получите самый передний контроль - PullRequest
3 голосов
/ 16 февраля 2012

У меня есть старая система, которая загружает пользовательские элементы управления в тип панели, затем, когда пользователь нажимает на элемент меню, он находит элемент управления, затем он вызывает метод BringToFront для элемента управления, делаявидимый пользовательский элемент управления на панели.

Мне нужно знать, как получить текущий Front элемент управления на панели?

С уважением

Ответы [ 2 ]

5 голосов
/ 16 февраля 2012

Я думаю, что вы ищете GetChildIndex, это даст вам значение z-oder элемента управления. Таким образом, вы можете проверить это значение для каждого дочернего элемента управления в текущих коллекциях элементов управления формы, а затем:

Элемент управления со значением индекса ноль находится вверху z-порядка, а более высокие числа ближе к низу.

Что-то вроде:

foreach (Control x in parent.Controls)
{
    if(parent.Controls.GetChildIndex(x) == 0)
    {
        //x is the front most control
    }
}
0 голосов
/ 11 ноября 2014

Как отметил Джо Уайт в комментарии, BringToFront изменяет порядок элементов в коллекции Controls контейнера. Так что если вы делаете

container.Controls[0]

это даст вам самый верхний контроль в этом ControlCollection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...