在选项卡控件C#中创建Windows窗体标签

时间:2014-11-27 05:10:49

标签: c# winforms tabs label controls

我正在研究一个项目,我正试图让它在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++;
            }

2 个答案:

答案 0 :(得分:2)

由于您要将新页面创建为TabPage contactPage对象,

tabs.TabPages.Add(tabName);

应该是

tabs.TabPages.Add(contactPage);

答案 1 :(得分:0)

喜欢建议使用

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

但在设置名称属性之前:

contactPage.Name="someUniqueName"

并使用

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

其中count是假设,TabPages["someUniqueName"]中的索引跟踪器抛出NullReferenceException。

另外,将contactpage添加到tabs而不是tabName