【发布时间】:2015-11-04 05:22:43
【问题描述】:
美好的一天,
我有几个方法在我的表单代码中需要很长时间。我想显示一条消息(在另一个表单上使用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 中的标签内容没有改变。
谢谢
【问题讨论】:
-
尝试在更新文本的方法中调用
label1.Refresh ();。 -
清晰简洁的答案。解决了这个问题。谢谢。