Клонирование вкладок в Tab Control по нажатию кнопки в Winforms - PullRequest
0 голосов
/ 06 мая 2018

, поэтому у меня есть домашняя страница на одной из вкладок в winform TabControl. У меня есть кнопка, которая добавляет новую вкладку, используя эту Tabs.TabPages.Add("Homepage");

Но TabPages.Add () просто добавляет новую пустую страницу, как бы я клонировал мою HomePage на новой вкладке? Например, если на моей домашней странице есть кнопка «Нажмите меня», когда я открываю новую вкладку, я хочу, чтобы на ней была та же кнопка «Нажмите меня», связанная с тем же событием «ClickMe_click». Как элемент управления Chrome Tab. Я не смог найти ни одного события или метода, встроенного для TabControl на MSDN, если я не пропустил его.

Буду признателен за любую помощь или подсказку или предложение. Спасибо.

1 Ответ

0 голосов
/ 06 мая 2018

Вы не можете так легко клонировать вкладку. Можно попробовать , но рекомендуемый способ:

  • Создайте UserControl и добавьте все элементы управления, которые вы хотите на своей странице. Сделайте это Dock=Fill и добавьте любой код, который соединяет элементы управления. Вы можете сделать макет так же свободно, как в форме или на вкладке.

  • Всякий раз, когда вам нужна еще одна страница этого типа, добавьте новую вкладку и добавьте экземпляр UserControl в ее коллекцию Controls.

Примечание. Все элементы управления на UserControl по умолчанию private. Это на самом деле не отличается от размещения их на вкладке напрямую. Но теперь они являются частными членами класса UC, поэтому ваша форма и ее код не могут получить к ним доступ.

Похоже, проблема, когда вы новичок в этом. Но если вы посмотрите на это правильно, это хорошая возможность создать более простой и понятный интерфейс.

  • Решение 1. Измените модификаторы управления на public при необходимости

  • Решение 2. Добавьте свойства для отображения тех данных, которые вы действительно хотите предоставить.

Также обратите внимание: вы можете делать все макеты, но делать это можно только в конструкторе UC. После добавления в форму или вкладку не будет встроенного дизайнера.

...