【问题标题】:Splash screen used before opening a form not loading controls在打开不加载控件的表单之前使用的启动画面
【发布时间】:2016-10-25 15:23:06
【问题描述】:

我有一个表单需要一些时间来加载(需要从数据库中获取一些值)。

所以我做了一个简单的“请稍候”启动画面,在启动表单之前显示它,关闭它并显示表单:

Dim sp As New SplashScreen2
sp.Show()
Dim a = New AsignarFormacionesUsuario(p)
a.Text = "Asignar formaciones a: " + p.NomComplet
a.Show()
sp.Close()

问题是闪屏没有正确地控制:

应该是:

如果我删除我的表单的 intancing 和显示(以及关闭飞溅,因此它不会立即关闭)它会完美显示。

所以这似乎不是飞溅的问题,而是表单的实例化并没有让飞溅正确加载。

我不知道该尝试什么,看来我只需要实例来等待启动 Show() 完成。但是不应该等一下吗?

【问题讨论】:

  • 当 UI 线程被阻塞时,UI 不会更新。显示启动画面后,您需要给 UI 线程时间来更新。
  • @ThorstenDittmar,GuidoG 的回答让它显示了控件,但 gif 没有移动。我确实需要另一个线程才能工作,对吧?
  • 我猜是这样。也就是说,你有没有检查过那些可以做启动画面的现成组件?他们可能已经有这样的功能......

标签: vb.net winforms splash-screen


【解决方案1】:
Dim sp As New SplashScreen2  
sp.Show()  

sp.Update() 

Dim a = New AsignarFormacionesUsuario(p)

【讨论】:

  • 它现在确实显示了,但“正在加载”的 gif 不动。我是否需要使用另一个线程才能同时处理负载和 gif?
  • 你用什么控件来显示 gif ?当您直接在 Windows 图像预览中查看 gif 时,您是否检查过它是否移动?
  • 一个图片框。当我不实例化AsignarFormacionesUsuario 表单时,gif 确实会移动,但在 Windows 和表单设计器中都不会
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多