2014-02-16 3 views
0

Я хотел бы использовать элемент управления вкладкой в ​​проекте VS # C#. Все вкладки должны содержать большое количество элементов управления. Динамические вкладки генерируются динамически. Так что я хотел бы сделать, это создать панель, содержащую все элементы управления, используя конструктор. Затем во время выполнения, когда создается новая вкладка, я хотел бы скопировать панель (или все ее элементы управления) на новую вкладку.Копирование элементов управления в VS C# project

Я предполагаю, что мне нужно создать новый класс, представляющий панель. Если новая вкладка открыта, я создаю новый экземпляр класса и добавляю этот элемент управления панели на новую вкладку.

У них есть два вопроса: 1. Является ли мое понимание правильным или вам нужно сделать это по-другому? 2. Как создать класс, представляющий панель с элементами управления? Если я сделаю это в дизайнере, я создам две формы окон, один из которых содержит элемент управления вкладки, а другой - панель с элементами управления примерами. Но таким образом панель является частью формы окна, и класс, который автоматически генерируется, также представляет собой форму окна, содержащую панель с элементами управления. Таким образом, экземпляр этого класса представляет собой форму окна, а не панель. Поэтому я не могу добавить его на вкладки.

Можете ли вы помочь мне с этой проблемой (я совершенно новичок в программировании на C# и oo)?

P.S .: Я думаю, вы также можете перебирать все элементы управления панели и добавлять их на другую панель. У вас это будет проще? И как вы это сделаете?

+0

Просто создайте UserControl. –

ответ

1

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

public class MainForm : Forms 
{ 

} 

public class MyPanel: UserControl 
{ 
} 

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

newTab.Controls.Add(new MyPanel()); 
+0

Хорошо, спасибо за подсказку! Это было очень легко реализовать, как только вы знаете, как это сделать. –

0

Вы можете создать пользовательский элемент управления и поместить все элементы управления в этот единственный.

Если ваши разные вкладки имеют большую часть общего, то вы можете просто пойти по сценарию, поставив все единый элемент управления плюс дополнительные элементы управления в одном элементе управления пользователя и динамически скрываясь и отображая внутренние элементы управления пользовательскими элементами управления на основе разных критериев вкладок , Выгода будет заключаться в том, что вы создадите только один элемент управления, который будет работать для разных вкладок на основе условий.

В противном случае просто пойдите для разных элементов управления пользователя для каждой вкладки на основе критериев и приложите их динамически.

Надеюсь, это поможет.

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