我有一个方法需要几秒钟才能完成。我希望在此期间看到标签,所以我使用了这段代码:
label.Visible = true;
method();
label.Visible = false;
当我运行此代码时,会出现标签的形状,但不会显示文字和颜色。如果我删除第三行代码,我可以看到只有在方法完成后标签才会完全可见。如何在方法开始之前使标签完全可见?
答案 0 :(得分:1)
您可以致电label.Refresh()
同步无效并重新标记标签。这是documentation。将Refresh
置于设置Visible
至true
之间并致电method
。
顺便提一下,如果method
是一个长时间运行的操作(看起来似乎如此),您可能需要考虑在BackgroundWorker
上运行它,以便GUI在操作期间保持响应。但这意味着将线程引入您的应用程序,这是相对复杂的,您可能只需重新绘制标签并让GUI冻结直到method
完成。