Как я и обещал, сейчас я покажу более крутой метод для поиска вложенного (внутреннего) контрола заданного типа во внешнем родительском контроле.
Похожие примеры: Типизированный поиск дочерних контролов (элементов) в родительском на c#, Поиск (получение) дочернего контрола в родительском на c#
Данный метод обобщенный. И в состоянии искать любой дочерний элемент любого типа, который вы укажите в качестве типа T при вызове данного метода.
А вот и сам метод:
private T GetChildeControl<T>(Control parentControl)
where T : Control
{
if (parentControl.GetType() == typeof(T))
return (T)parentControl;
foreach (Control childControl in parentControl.Controls)
{
var neededControl = GetChildeControl<T>(childControl);
if (neededControl != null)
return neededControl;
}
return null;
}
Если вдруг кто-то не понимает как работать с данным методом (я очень хорошо понимаю новичков, для которых обобщения (Generic) еще не пришлись по вкусу), то, к примеру, для поиска кнопки на панеле (контрол Panel) следует выполнить следующий код:
Button myButton = GetChildeControl<Button>(myPanel);
Для поиска текстового поля в SplitContainer:
TextBox myTextBox = GetChildeControl<TextBox>(mySplitContainer);
и так далее.
Немного разобравшись с данным примером, вы обнаружите, что пользование обобщенными метода приносит много приятных моментов, связанных с временем разработки. Также надеюсь, что данный код немного приблизил вас к пониманию и назначению обобщений.
Оценить статью:
Оценивая статью, Вы подсказываете нам насколько данная информация стала
полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала
для понимания и простоты его изложения. Дополнительные комментари, вопросы,
дополнения и замечания Вы можете указать на странице
От Вас
Частичное, или полное копирование материала данной
статьи возможно лишь при размещении ссылки на данную страницу.