0

有一个表格。在表单上有一个停靠在所有表单表面的图片框。当应用程序启动时,会显示一个白色表面的表单,然后显示图片。

我怎样才能摆脱那个 1s 白色形式?

4

3 回答 3

1

您没有说明何时使用图像加载图片框。但我会尝试让您的图片框在您的 Form_Load 事件结束时或在您的 Form_Shown 事件中可见。

于 2012-06-26T10:57:25.690 回答
1

对我来说听起来更像是一个线程问题。我猜你的 UI 线程做的工作太多,不能经常更新 UI。

执行以下所有操作:

  • 确保加载和处理任何数据(包括图像)不在构造函数中。
  • 将该代码移动到适当的 FormLoad() 事件处理程序方法中。
  • 实现图像的加载,以便它运行一个单独的线程。

您可以在这篇 MSDN 文章中找到一些建议:为您的基于 .NET 的应用程序提供具有多线程的快速响应式 UI

如果您使用的是 .NET 4.x 版本,您还可以使用任务并行库来更轻松地处理多个线程。

即将推出的 .NET 4.5 还提供了更加舒适的 await 和 asyc 关键字:使用 Async 和 Await 进行异步编程

于 2012-06-26T12:15:39.253 回答
1

听起来你在 form_Shown 事件中做一些耗时的事情。调用 Form 的 Refresh() 方法作为表单显示的第一件事 - 事件,它会先绘制表单,然后做耗时的事情

于 2012-06-26T19:25:48.473 回答