【问题标题】:Show progress till an operation completes winform显示进度直到操作完成 winform
【发布时间】:2009-12-31 14:58:18
【问题描述】:

我有一个 WinForm 应用程序(.net 3.5),当您第一次选择一个人时,它会检索整个计划的所有这些人的数据。这可能需要最多 5 秒。我需要向我的用户(仅限内部)显示程序正在以某种方式加载/工作。我还需要将它们保持在该屏幕上,直到它完成为止。对应用程序进行设计,他们可以跳转到应用程序中的任意数量的位置。

我想也许 Background Worker 是我想要的,但因为我希望它们保持原样直到加载,我不再确定(???)。

我的应用正在填充 ~ 20 个用户控件。每个用户控件查询本地 SQL Express 数据库以获取其信息。所以我在我的父表单上有一个方法,它通过并“绘制”所有用户控件,这就是他们正在等待的。

想法?我最好的选择是什么。

【问题讨论】:

    标签: c# .net winforms user-interface progress-bar


    【解决方案1】:

    您可以创建一个带有进度条的 ProgressBarForm。做一个 ShowDialog 使其成为模态的。

    并订阅BackgroundWorker的ReportProgress,让你的进度条有进度。

    【讨论】:

      【解决方案2】:

      BackgroundWorker 是一个不错的选择,去吧 - 它专为您描述的场景而设计。

      【讨论】:

      • 我可以让后台工作人员弹出一个进度指示器,这样他们就可以留在那里?
      • 这是一种方法,在后台工作人员完成之前打开一个模态对话框。
      • 这是错误的做法。您的 UI 仍然无效,表单的标题将更改为“未响应”。 BGW 必须完成繁重的工作。
      【解决方案3】:

      如果有一个带有进度条的锁定模式窗口,它会随着后台工作程序抛出的事件而改变? Winforms 不是我真正的包,但这样的东西可以工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-27
        • 1970-01-01
        相关资源
        最近更新 更多