【问题标题】:Form loads long time, how to hide the loading and display progress?表单加载时间长,如何隐藏加载和显示进度?
【发布时间】:2009-11-16 08:00:08
【问题描述】:

我正在使用一个需要很长时间才能设置的组件繁重的表单。部分设置是第三方控件的行为,我无法收集进度。 (DevExpress XtraScheduler)。这会冻结应用程序。

我需要设置表单上的哪些属性以便在后台加载表单以及我应该对哪些事件进行内容处理?

编辑:

我知道BackgroundWorker,但是如果我在BW上推送表单的创建,我怎么知道这个过程何时完成?我的意思是,我是否可以让表单自行准备(记住我无法控制组件在做什么)并通知 BW 它已完成准备?那会是什么活动?

【问题讨论】:

    标签: .net winforms


    【解决方案1】:

    如果您的应用程序的初始加载需要时间,您可以考虑adding a splash screen。如果它是辅助形式,那么BackgroundWorker 类是一个出色的组件,它允许您在后台线程上执行耗时的任务,而不会冻结您的主 GUI 线程。 DoWorkProgressChangedRunWorkerCompleted 事件特别有用。

    【讨论】:

    • 我稍微澄清了我的问题。我需要知道将 BW 与哪些事件联系起来。链接做得很好。
    • 工作完成后会执行 RunWorkerCompleted 事件。您提到您无法控制控件正在做什么,但有时您正在调用一些需要时间的函数。您需要在 DoWork 处理程序中执行此函数。
    【解决方案2】:

    VB.NET 启动画面非常适合这一点。如果您使用 C# 工作,您可以导入 Microsoft.VisualBasic 以获得相同的效果。您的主窗体在后台加载,启动画面在前台平稳运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多