Отражение в UserControl для проверки содержащей формы. C # - PullRequest
0 голосов
/ 11 февраля 2010

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

Как я могу это сделать? Я использовал рефлексию, чтобы пройти через dll, но не для чего-то подобного.

в итоге: мой usercontrol помещен в форму, я хочу, чтобы мой usercontrol onLoad просматривал все другие элементы управления в форме (иногда я хочу ограничить его тем же контейнером, а не всей формой, но я могу это выяснить потом).

Я также открыт для идей, которые не используют отражения, если у кого-то есть.

спасибо!

РЕДАКТИРОВАТЬ:

Поэтому я попытался просто просмотреть родительские элементы управления, и это не сработало для того, что я пытаюсь сделать, и я виноват в том, что плохо объяснил это выше.

Позвольте мне привести некоторые подробности.

Я знаю, что в главной форме будет элемент управления ContainerListView, теперь, когда вы добавляете столбцы в containerlistview, создаются ContainerListviewColumnHeaders. Их объявления отображаются в initalizeComponent () для формы. Что я хочу сделать, так это в своем пользовательском контроле. Я хочу посмотреть на форму и найти все ContainerListViewColumnHeader's, однако, поскольку они не относятся к типу «Control» (они «Component»), они не отображаются в предыдущем методе. Опрос контейнера списка не вариант.

1 Ответ

5 голосов
/ 11 февраля 2010

Нет необходимости в отражении.

Просто посмотрите на UserControl.ParentForm - это форма, в которой размещен UserControl. Оттуда вы можете выполнять итерацию (рекурсивно) через Form.Controls .

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