gpt4 book ai didi

c# - 在 C# Windows 窗体中使用计时器停止并重复过程

转载 作者:行者123 更新时间:2023-11-30 20:17:22 24 4
gpt4 key购买 nike

我正在尝试使用计时器来实现过去用来显示进程正在运行的一种旧动画。

我想这样做的方法是在句子中添加点(在标签控件中),例如:

“进程正在运行。”到“进程正在运行..”和“进程正在运行...”,限制为 3 个点,然后恢复为单个点。

我不确定在这里使用计时器是否是最佳选择,但我认为对于这样一个简单的示例它应该可以正常工作。

我使用的代码如下:

public string InitialProcessText;

private void StartBtn_Click(object sender, EventArgs e)
{
if(fileName != "No file selected")
{
ValidationLbl.Text = null;
ProcessLbl.Text = "Application is now running.";
//InitialProcessText = ProcessLbl.Text;
ProcessTimer.Start();
}
else
{
ValidationLbl.Text = "No file was added";
}
}

private void StopBtn_Click(object sender, EventArgs e)
{
ProcessTimer.Stop();
}

private void ProcessTimer_Tick(object sender, EventArgs e)
{
_ticks++;

//For every two ticks, ProcessLbl.Text = InitialProcessText
ProcessLbl.Text += ".";
}

我可以添加什么来设置添加 2 个点的限制,然后删除这些点并再次添加点(我假设在 ProcessTimer_Tick 方法中执行此操作)?

最佳答案

你可以只使用你的 _ticks 变量:

private readonly int _ticksPerUpdate = 2;
private readonly int _maxNumberOfDots = 3;

private void ProcessTimer_Tick(object sender, EventArgs e)
{
_ticks++;

if(_ticks == (_ticksPerUpdate * (_maxNumberOfDots + 1)))
{
_ticks = 0;
ProcessLbl.Text = InitialProcessText;
}
else if(_ticks % _ticksPerUpdate == 0)
{
ProcessLbl.Text += ".";
}
}

记得每次启动计时器时重置滴答计数器:

private void StartBtn_Click(object sender, EventArgs e)
{
if(fileName != "No file selected")
{
ValidationLbl.Text = null;
ProcessLbl.Text = "Application is now running.";
InitialProcessText = ProcessLbl.Text;

// reset the variable
_ticks = 0
ProcessTimer.Start();
}
else
{
ValidationLbl.Text = "No file was added";
}
}

关于c# - 在 C# Windows 窗体中使用计时器停止并重复过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44827105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com