Прочтите добавленный раздел для большей ясности, так как я немного поболтал.
Есть несколько способов решить эту проблему архитектурно.основная концепция - перестать думать о «закладках» как о физической концепции и начать думать об этом логически.Как логическая концепция, в вашей реализации вкладка - это набор элементов управления, некоторые из которых уникальны, а некоторые являются общими (или общими для нескольких вкладок).
В чисто динамической системе вы заполняете «элементы управления» и динамически рисуете в зависимости от того, на какую «вкладку» нажимает человек.Это означает, что вам не нужно использовать вкладку.Вместо этого вы рисуете «вкладку», основываясь на том, какая информация должна отображаться пользователю.
Другой вариант - оставить уникальные «элементы управления», уже размещенные на «вкладке», и оставить контейнеры, которые вы можете добавить внеуникальные элементы управления для.Требуется некоторое планирование, чтобы определить, какие элементы управления должны отображаться на какой странице и как переплетаются статические (элементы управления, размещенные на вкладке) и динамические.Другими словами, немного планирования может спасти вас от горя.
В любом случае, вы хотите заполнить один элемент управления один раз, независимо от того, на скольких «закладках» он используется.
Добавлено: так как это winforms, вам придется немного изменить свою мысленную парадигму.Если бы вы были разработчиком веб-форм, вы бы уже подумали с точки зрения контейнеров.
Один из вариантов - это шаблон стратегии для вкладок.стратегия содержит элементы управления, необходимые для рисования «вкладки», а также их расположение и размер на странице.Когда человек нажимает на вкладку, вы попадаете в «корзину элементов управления» и динамически добавляете в зависимости от используемой «вкладки» (стратегии).Вы даже можете перейти на закладку к стратегии и динамически раскрасить ее там.
главное во всем ответе - выполнить работу один раз, а затем отобразить при необходимости.