Какой эффективный метод динамического управления вкладками с пользовательскими элементами управления в них? - PullRequest
2 голосов
/ 06 августа 2010

Я ищу эффективный способ обработки (методов и событий элементов управления) динамически создаваемых вкладок с динамически создаваемыми элементами управления в них (один и тот же интерфейс для каждой вкладки).

Я хочу, чтобы можно было определить, с какой страницы вкладки произошло событие Click кнопки и такое поведение.

Могу ли я установить общий список коллекций, в котором будут храниться закладки? Где и в чем я хочу хранить ссылки для каждого отдельного элемента управления вместе с их методами и событиями? Я также хочу хранить ссылки для каждого отдельного элемента управления в общих списках коллекций? Я надеюсь избежать метода наследования TabPage User Control. Это станет самым эффективным маршрутом, который мне придется пройти?

Ответы [ 2 ]

1 голос
/ 06 августа 2010

Это, конечно, возможно, просто неловко. Вы всегда можете получить ссылку на элемент управления из коллекции Controls или аргумента sender события. Это свойство Parent дает вам вкладку. Etcetera.

Да, List<TabPage> будет работать. Но также свойство TabControl.TabPages.

0 голосов
/ 07 августа 2010

Возможно, я что-то упускаю, но, если вы знаете иерархию элементов управления, вы можете щелкнуть отправителя как кнопку (как предложил Ганс) и получить его родителя

if(MyTabPage == (TabPage)((Button)sender).Parent)

ИЛИ получить родителя родителя

if(MyTabPage == (TabPage)((Button)sender).Parent.Parent)

или как бы далеко вверх по иерархии не нужно переходить на вкладку, чтобы выяснить, на какой вкладке вы находитесь.

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