2009-06-07 3 views
2

Я хочу создать простое приложение с вкладками. Я сделал это раньше в WPF, используя usercontrol внутри каждой вкладки, и я общаюсь с основной формой, ища родительский элемент (форма или элемент управления вкладкой).Пользовательский интерфейс с вкладками в C#

Как я мог сделать то же самое в WinForms? Какой элемент нужно помещать внутри каждой вкладки?

Спасибо.

ответ

8

Вы можете использовать практически такой же подход в приложении winforms. Вы можете добавить элементы управления пользователя на страницы вкладок TabControl на форме. Внутри пользовательского кода управления вы можете использовать метод FindForm для получения родительской формы.

Однако я бы предположил, что вместо этого вы используете события для связи «вне» с элементами управления, чтобы сделать их менее зависимыми от их окружения.

+0

Почему FindForm вместо свойства Parent? Просто любопытно. =) –

+2

Родительское свойство возвращает родителя, что вполне может быть другим элементом формы. Если вы поместите панель в форму и пользовательский элемент управления на этой панели, вам нужно будет использовать Parent.Parent для доступа к форме. Вы можете считать FindForm ярлыком, который ведет непосредственно к форме. –

+0

О, я знаю, как работает FindForm, я просто не рассматривал рекурсивную проблему Parent.Parent.Parent. Благодаря! ^^ –

1

TabPage и TabControl могут быть классами и компонентами, которые вы хотели бы изучить. Используя свойство Parent, вы можете получить доступ к форме владения и, таким образом, связаться с ней или между вкладками, если вам это нужно.

Хотя, как предполагает Фредрик Мёрк, использование событий является гораздо лучшей практикой. =)

Смежные вопросы