【问题标题】:How can I make a label visible before the subsequent code is run?如何在后续代码运行之前使标签可见?
【发布时间】:2015-02-15 07:33:43
【问题描述】:

我有一个需要几秒钟才能完成的方法。我想让一个标签在那段时间可见,所以我使用了这段代码:

label.Visible = true;
method();
label.Visible = false;

当我运行此代码时,标签的形状会出现,但文本和颜色不会。如果我删除第三行代码,我可以看到标签只有在方法完成后才完全可见。如何在方法开始之前使标签完全可见?

【问题讨论】:

    标签: c#


    【解决方案1】:

    您可以调用label.Refresh() 同步使标签失效并重绘。这是documentation。将Refresh 放在设置Visibletrue 和调用method 之间。

    顺便说一句,如果method 是一个长时间运行的操作(看起来确实如此),您可能需要考虑在BackgroundWorker 上运行它,以便GUI 在操作期间保持响应。但这意味着在您的应用程序中引入线程,这是相对复杂的,您可能会满足于简单地重新绘制标签并让 GUI 冻结直到 method 完成。

    【讨论】:

      猜你喜欢
      • 2011-01-07
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      相关资源
      最近更新 更多