我有一个基于面板的自定义类,其中包含一个标签对象。 我的班级有一个构造函数,带有1个参数,类型为String,它必须是标签的文本。
在我的主要形式中,我通过一个值数组进行迭代,并以编程方式添加自定义面板类以及来自数组的值作为参数传递。
我看到我的面板,但是标签不可见。
我的表单的代码:
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void Label1_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void FrmMain_Load(object sender, EventArgs e)
{
for (int i =0; i <= 20; i++) {
PlaylistRecords pl = new PlaylistRecords("Some name " + i.ToString())
{
Name = "Some Name " + i.ToString()
};
this.pnlViewer.Controls.Add(pl);
pl.Left = 2;
pl.Top = 4 * i + pl.Height * i;
pl.Invalidate();
}
this.pnlViewer.Invalidate();
this.pnlViewer.AutoScroll = false;
this.pnlViewer.HorizontalScroll.Enabled = false;
this.pnlViewer.HorizontalScroll.Maximum = 0;
this.pnlViewer.AutoScroll = true;
}
}
我的PlaylistRecords类:
public class PlaylistRecords:Panel
{
private Label lblRecordName;
public static String RecordName { get; set; }
public PlaylistRecords(
String RecordName
)
{
InitializeComponent();
this.Size = new System.Drawing.Size(800,50);
this.BackColor = System.Drawing.Color.FromArgb(20,20,20);
PlaylistRecords.RecordName = RecordName;
this.lblRecordName.Text = PlaylistRecords.RecordName;
}
private void InitializeComponent()
{
this.lblRecordName = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lblRecordName
//
this.lblRecordName.BackColor = System.Drawing.Color.Black;
this.lblRecordName.ForeColor = System.Drawing.Color.White;
this.lblRecordName.Location = new System.Drawing.Point(2, 2);
this.lblRecordName.Name = "lblRecordName";
this.lblRecordName.Size = new System.Drawing.Size(350, 23);
this.lblRecordName.TabIndex = 0;
this.ResumeLayout(false);
}
}
我看到了pl对象,但是没有显示lblRecordName标签。 在调试器中,我看到lblRecordNmae具有正确的值。
为什么我看不到它?