C# 标签不会改变文本

C# 标签不会改变文本,c#,while-loop,label,C#,While Loop,Label,我试图在进度条下放置一个标签,该标签根据完成的百分比进行更改。数学是可行的,代码看起来应该是可行的,但在我运行程序时标签没有改变。以下是我的代码的简单版本: while(...) { fileCount = fileCount + 1; progressBar1.Increment(1); changeText(sender, e, fileCount, progressBarCount); } private void changeText(object

我试图在进度条下放置一个标签,该标签根据完成的百分比进行更改。数学是可行的,代码看起来应该是可行的,但在我运行程序时标签没有改变。以下是我的代码的简单版本:

 while(...)
 {
     fileCount = fileCount + 1;
     progressBar1.Increment(1);
     changeText(sender, e, fileCount, progressBarCount);
 }


private void changeText(object sender, EventArgs e, double fileCount, double progressBarCount)
{
    int percentage = Convert.ToInt32((fileCount / progressBarCount) * 100);
    Label percentageText = new Label();
    percentageText.Text = string.Format("{0}%", percentage);
}

首先将控件添加到窗体:

this.Controls.Add(percentageText)

然后尝试使用以下命令调用窗体的刷新方法:

this.Refresh()


在changeText()方法中。

不要阻止UI线程。我该如何做?我可以得到一个示例,它可以随意地洒一些
Application.DoEvents()在整个代码中调用(快速破解,UI仍然不会顺畅)。或者查找
BackgroundWorker
,并使用它在非UI线程上执行工作(正确的解决方案)。@Secretario financiaero您每次都在创建新标签,但没有将此标签附加到UI。您应该使用已经在UI中初始化的标签对象。在定义标签的位置显示UI代码