Создание меток Windows Forms в элементе управления вкладками C#

В данный момент я работаю над проектом, и я пытаюсь сделать так, чтобы каждый контакт в ArrayList имел свою собственную вкладку. На странице вкладки я хочу, чтобы вся их информация отображалась, для этого я пытаюсь создать метки, которые будут иметь свою информацию. Я сейчас как раз в тот момент, когда пытаюсь отобразить хотя бы одну метку, но, похоже, она вообще не отображается. Мой код ниже. Любая помощь?

            int count = 0;

            foreach (clsContactHandler contact in clsGlobal.mContacts)
            {
                string tabName = contact.FirstName + " " + contact.LastName;

                Font font = new Font("Microsoft Sans Serif", 16.0f, FontStyle.Bold);
                TabPage contactPage = new TabPage(tabName);
                tabs.TabPages.Add(tabName);
                Label label = new Label();

                contactPage.Controls.Add(label);

                label.Font = font;
                label.AutoSize = true;
                label.Location = new System.Drawing.Point(16, 7);
                label.Name = "label" + count;
                label.Size = new System.Drawing.Size(43, 13);
                label.Text = "Name:";
                count++;
            }

person Benjamin    schedule 27.11.2014    source источник
comment
Делать это так выглядит болезненно. Вы можете смоделировать динамические вкладки, поместив все элементы управления в UserControl и поместив их в TabPage, как описано здесь: stackoverflow.com/questions/17305249/   -  person Steve Wellens    schedule 27.11.2014


Ответы (2)


Поскольку вы создаете новую страницу как объект TabPage contactPage,

tabs.TabPages.Add(tabName);

должно быть

tabs.TabPages.Add(contactPage);
person Diligent Key Presser    schedule 27.11.2014

как предложенное использование

tabs.TabPages[tabName].Controls.Add(label);

но перед этим заданным свойством имени:

contactPage.Name="someUniqueName"

и использовать

tabs.TabPages[count].Controls.Add(label);

где count, я полагаю, средство отслеживания индекса в случае TabPages["someUniqueName"] выдает NullReferenceException.

Кроме того, добавьте contactpage к tabs, а не tabName

person Community    schedule 27.11.2014