动态更新C#中的标签

时间:2019-03-13 09:27:36

标签: c#

我正在使用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);
}

2 个答案:

答案 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了解如何使用它们。 如果您在执行此操作时遇到任何麻烦,请告诉我。