我正在使用EAGetMail访问成功接收的附件的名称。但是另一方面,我想将该名称放置在标签上,如代码所示,但是我的标签值完全没有变化。相反,当我单击另一个附件时,该附件的名称和先前的附件合并在一起并显示在标签上。下面是我正在使用的标签代码。
for (int a = 0; a < count; a++)
{
att = atts[a];
MessageBox.Show(""+att.Name);
label1.Text = att.Name.ToString();
System.Threading.Thread.Sleep(1000);
// MessageBox.Show(""+att.Name);
label1.Location = new System.Drawing.Point(50, 20);
label1.ForeColor = System.Drawing.Color.Black;
label1.AutoSize = true;
picture = new PictureBox();
picture.SizeMode = PictureBoxSizeMode.StretchImage;
picture.SizeMode = PictureBoxSizeMode.StretchImage;
picture.Location = new System.Drawing.Point(20, 10);
picture.Size = new System.Drawing.Size(30, 30);
picture.Image = new Bitmap("C:/Users/HP/source/repos/EmailViewer/EmailViewer/Resources/atts.png");
panel6.Controls.Add(picture);
panel6.Controls.Add(label1);
}
答案 0 :(得分:1)
每次将标签和图片添加到容器时,都应创建一个新的Label和Picture实例。否则容器将始终引用相同的对象。
所以在您的for循环中,
for (int a = 0; a < count; a++)
{
label1=new Label();
........Rest of the code....
}
答案 1 :(得分:0)
您可以使用事件:
Here is an example了解如何使用它们。 如果您在执行此操作时遇到任何麻烦,请告诉我。