将显示C#WinForms标签,但不显示文本

Jos*_*ibb 6 c# user-interface label winforms

我正在设计一个GUI,并且我有一个标签,在我调用一个往往需要一段时间的动作后,我有效地使用它作为"请稍候"的消息.标签的文本是静态的,我在VS2010的属性中为标签控件设置了它.

当我在表单上点击该操作时,我.显示()通常隐藏的控件,直到耗时的过程完成,然后.Hide()它.当它击中.Show()时,标签弹出(我知道这是因为我将BorderStyle设置为Fixed3D所以我看到标签的边框显示)但是它没有任何文本.我已经尝试将标签设置为自动调整并且无效,我的文本在灰色上设置为黑色,因此没有隐形墨水,一切都可见,字体已设置.代码按照我希望的方式执行,标签中没有文本.我不知所措.

有任何想法吗?

JDB*_*JDB 11

如果在同一个线程上发生耗时的进程,则可能是刷新/重绘问题(处理器太忙而无法处理UI请求).尝试在开始长时间运行的过程之前刷新窗口,或者更恰当地说,将耗时的过程放在BackgroundWorker中.


dth*_*rpe 6

如果耗时的进程没有在后台线程中执行,那么您的UI不会更新,因为没有进行任何消息处理.控件在WM_Paint消息中重绘自己.

在进入漫长过程之前,尝试在更改其状态后在控件或其窗口句柄父(表单)上调用Refresh.

或者,将长时间运行的进程移动到后台线程(请参阅.NET 4.0任务)以释放UI线程.