更改表单的标签文本

本文关键字:标签 文本 表单 | 更新日期: 2023-09-27 18:20:35

您好,我有几个方法在我的表单代码中花费了很长时间。我想显示一条消息(在另一个表单上使用label)来通知用户正在发生的事情,这样他们就不会认为程序没有响应。

我不想使用MessageBox.Show(),因为我希望有一个对象,我可以更改它的文本,并在需要时处理它,而用户无法关闭它

到目前为止,我有这样的东西:在我的主要形式:

private void Foo()
{
    Form2 infoPopup = new Form2();
    infoPopup.setText("running function1");
    infoPopup.Show();
    slowFunction1();
    infoPopup.setText("running function2");
    slowFunction2();
    infoPopup.Dispose();
}

正如你可能猜到的,在Form 2中,我有一个这样的函数:

private void setText(string message)
{
   this.label1.Text=message;
}

不幸的是,这个解决方案只能部分起作用。我确实收到了form2弹出消息,但form2中标签的内容没有改变。

感谢

更改表单的标签文本

当应用程序繁忙时,重绘控件不是优先事项。因此,除非您的代码在工作线程中运行,否则UI不会可靠地更新。

不过,您可以强制进行更新。控件和窗体都有一个Update()方法。它强制对象重新绘制自己。

根据您的具体情况,您可能还想研究Invalidate()Refresh()方法。