В одной из прошлых статей мы поговорили о нахождении всех дочерних элементов требуемого типа в текущем контроле. Сегодня же сосредоточимся на методе, который выполняет поиск одного конкретного контрола заданного типа в текущем контроле.
Похожие примеры: Типизированный поиск дочерних контролов (элементов) в родительском на c#, Поиск вложенного контрола во внешнем - обобщенный метод c#
Вот сам метод:
Control GetChildeControl(Control Ctrl, Type type)
{
// Работаем только с искомым контролом
if (Ctrl.GetType() == type)
{
return Ctrl;
}
//Проходим через элементы рекурсивно, чтобы не
//пропустить элементы, которые находятся в контейнерах
foreach (Control ctrlChild in Ctrl.Controls)
{
Control potentialResult =
GetChildeControl(ctrlChild, type);
if (potentialResult != null)
{
return potentialResult;
}
}
return null;
}
Опять же, мы использовали рекурсию. Только на этот раз мы получаем один единственный контрол заданного типа. Известнго заранее, что данного типа контрол всего один в заданном контроле, в противном случае мы получим первый попавшийся заданного типа.
В прошлой статье по рекурсивному поиску дочерних контролов я пообещал, что скоро мы рассмотрим такого рода методы на обобщениях.
В следующей статье мы обязательно рассмотрим такой метод.
Оценить статью:
Оценивая статью, Вы подсказываете нам насколько данная информация стала
полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала
для понимания и простоты его изложения. Дополнительные комментари, вопросы,
дополнения и замечания Вы можете указать на странице
От Вас
Частичное, или полное копирование материала данной
статьи возможно лишь при размещении ссылки на данную страницу.