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代码