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