我在启动画面上有一个标签,显示4秒钟。我试图让标签以百分比显示加载过程。显然,这只是向用户显示该程序实际上正在启动而不是实际上“加载”该程序。任何东西。有没有办法让标签在4秒内显示百分比(从1%到100%)?如何做到这一点有点迷失。

有帮助吗?

解决方案

在窗体上放置一个Timer控件,并将其Interval属性设置为40,将其Enabled属性设置为true。像这样创建一个表单级变量:

private int _Progress = 0;

在Timer的Tick事件中,输入以下代码:

if (_Progress < 100)
{
    _Progress++;
    label1.Text = _Progress.ToString() + "%";
}
else
{
    timer1.Enabled = false;
}

定时器的精确度并不准确到毫秒,因此这不会花费4秒钟,但它可以完成这项工作。

其他提示

假设你正在谈论WinForms(不是WPF),最简单的方法就是定时器控制。将超时设置为40 ms(4秒= 4000 ms.4000 ms / 100次更新= 40 ms)。创建用于跟踪进度的类级整数。然后你的OnTick事件的代码看起来像这样...

if(progress < 100)
{
  progress++;
  progessLabel.Text = String.Format("Loading...  Progress: {0}%", progress);
}
else
{
  timer.Enabled = false;
}

间隔设置为100毫秒的计时器将是最简单的方法。保持计时器事件被调用的次数,并将进度条每次更新2.5%。

虽然这可行,但我会说进度条对于这种情况并不理想。相反,只是一个动画图形会更好,因为它表明你的程序正在启动,但不会像进度条那样误导。

我认为微软经常会在某些应用程序中使用误导性进度条时犯这个错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top