返回

让 C# WinForm 程序加载更优雅:Loading 等待界面的实现

后端

C# WinForm 界面加载优化:使用 Loading 等待界面

简介

在上一篇博客中,我们解决了 C# WinForm 程序启动时屏幕闪烁的问题。然而,我们注意到加载过程变得缓慢,给用户带来了较差的体验。为了解决这一问题,我们将在本篇博客中实现一个 Loading 等待界面。当程序启动时,将显示一个进度条,并在界面 UI 完全加载后消失。

优点

  • 增强用户体验:Loading 等待界面可为用户提供有关加载进度的视觉提示,缓解焦虑感。
  • 提高应用程序的响应能力:在加载过程中,主界面将保持禁用状态,防止用户与尚未加载的控件交互。
  • 提高应用程序的专业性:Loading 等待界面可传达给用户应用程序正在认真执行其任务,从而提高应用程序的专业性。

实施步骤

1. 创建一个 Loading Form

  • 创建一个新的 Windows Form 项目。
  • 将窗体命名为 LoadingForm
  • 在窗体上添加一个 ProgressBar 控件。

2. 在主窗体中创建 Loading Form

  • 在主窗体的构造函数中,创建 LoadingForm 的实例并将其隐藏。
  • 在窗体加载事件处理程序中,显示 LoadingForm

3. 监控 UI 加载进度

  • 创建一个用于监视 UI 加载进度的事件。
  • 每当控件加载完毕时,触发此事件并更新 LoadingForm 中的进度条。

4. 在 UI 加载完毕后关闭 Loading Form

  • 当所有控件加载完毕时,触发事件以关闭 LoadingForm

代码示例

LoadingForm.cs

public partial class LoadingForm : Form
{
    public LoadingForm()
    {
        InitializeComponent();
    }

    public void UpdateProgress(int progress)
    {
        progressBar.Value = progress;
    }
}

MainForm.cs

public partial class MainForm : Form
{
    private LoadingForm loadingForm;

    public MainForm()
    {
        InitializeComponent();

        loadingForm = new LoadingForm();
        loadingForm.Hide();
    }

    private void MainForm_Load(object sender, EventArgs e)
    {
        loadingForm.Show();

        // 监控控件加载进度并更新进度条
        foreach (Control control in Controls)
        {
            control.LoadCompleted += Control_LoadCompleted;
        }
    }

    private void Control_LoadCompleted(object sender, EventArgs e)
    {
        loadingForm.UpdateProgress(100);
        loadingForm.Close();
    }
}

使用 AI 螺旋创作器生成的文章

在 C# WinForm 程序中添加 Loading 等待界面是一个简单的过程,可以显著改善用户体验和应用程序的整体印象。通过遵循本文中的步骤,你可以为你的应用程序创建自己的 Loading 等待界面,让你的用户在等待应用程序加载时不再感到焦躁不安。