gpt4 book ai didi

c# - 我的标签没有从 Form2 更新

转载 作者:行者123 更新时间:2023-11-30 20:45:11 24 4
gpt4 key购买 nike

我已经在 Form1 上公开了以下两个控件(修饰符)

ProgressBar
Label

同样在 Form1 上,我像这样启动 Form2

Form2 f = new Form2(progressBar1, label1)

在 Form2 上,我在 Form2 中运行以下代码

 private ProgressBar progressBarForm2;
private Label labelForm2;

public Form2(ProgressBar pb, Label lb)
{
labelForm2 = lb;
progressBarForm2 = pb;
}

然后在 Form2.cs 中的一个方法中,我有以下代码

 scoreScreen = 4;
progressBarForm2.Value = scoreScreen;
labelForm2.Text = ((progressBarForm2.Value / progressBarForm2.Maximum) * 100).ToString() + "% Complete";
labelForm2.Refresh();
Application.DoEvents();

ProgressBar 在 Form1 上正常更新

Form1 上的进度条正在更新。标签不是

我假设当我将控件传递给方法时,它是通过引用传递的,因此对方法中控件的任何更改都会更新原始控件。

我找不到更好的方法来更新 Form1 上的控件,所以如果你们有更好的方法,我很乐意。

最佳答案

看起来像整数除法:

  ((progressBarForm2.Value / progressBarForm2.Maximum) * 100).ToString() 

因为 progressBarForm2.Maximum 大于 progressBarForm2.Value 你有

  progressBarForm2.Value / progressBarForm2.Maximum == 0

要修改,只需更改顺序(先,然后):

  labelForm2.Text = ((progressBarForm2.Value * 100) / progressBarForm2.Maximum).ToString(); 

关于c# - 我的标签没有从 Form2 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28480637/

24 4 0