c # добавление группового поля при создании новых вкладок - PullRequest
0 голосов
/ 12 марта 2019

Я только что создал приложение, используя C # в Visual Studio.Мне интересно, возможно ли создать новый экземпляр группового поля с текстовым полем и меткой, как показано на рисунке, когда пользователь нажимает кнопку добавления новой вкладки (+).Например, когда пользователь открывает Google Chrome, каждый раз, когда пользователь открывает новую вкладку, он будет отображать одно и то же окно поиска на каждой странице.На данный момент я могу создать новую вкладку, когда пользователь нажимает кнопку добавления, но страница новой вкладки будет пустой.

enter image description here

1 Ответ

0 голосов
/ 12 марта 2019

Вам необходимо использовать «using System.Reflection;»

И это в основном это:

TabPage tpOld = tabControl1.SelectedTab;
TabPage tpNew = new TabPage();
foreach (Control c in tpOld.Controls)
{
    Control cNew = (Control)Activator.CreateInstance(c.GetType());
    PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(c);
    foreach (PropertyDescriptor entry in pdc)
    {
        object val = entry.GetValue(c);
        entry.SetValue(cNew, val);
    }
    tpNew.Controls.Add(cNew);
}
tabControl1.TabPages.Add(tpNew);

Этот код скопирует все элементы управления старой вкладки и поместит их на новую вкладку с точными элементами управления, позициями и размерами старой.

Кредиты здесь: здесь .

...