如何在循环中按字符串显示标签上的字符串数组?

How to display array of strings on a label in string by string in a loop?

此代码现在位于 form1 构造函数中。

if (filesRadar.Length > 0)
                            {
                                for (int i = 0; i < filesRadar.Length; i++)
                                {
                                    label2.Text = dates[i].ToString("ddd, dd MMM yyy HH':'mm");
                                }
                            }

我想在构造函数中调用方法或其他内容时以及下载完成时等其他地方显示日期中的字符串。每次调用方法或启用计时器以特定速度循环显示字符串。

现在正在显示,但速度太快,最后只显示最后一项,没有循环显示。

您可以将其作为一个 void 方法,您可以随时调用:

    public void ReportTime()
    {
            for (int i = 0; i < filesRadar.Length; i++)
                label2.Text += dates[i].ToString("ddd, dd MMM yyy HH':'mm") + Environment.NewLine;
    }
    

or enabling timer to display the strings in a loop in specific speed.

是什么阻止你这样做?...

将计时器放在表单上并将其 Interval 属性 设置为合理的值。例如,间隔 1000 表示它每秒更改一次。确保定时器已打开(已启用)。

现在将 i 变量移到 class 级别并摆脱 for 循环:

private int i = -1;

private void timer1_Tick(object sender, EventArgs e)
{
    if (filesRadar.Length > 0)
    {
        i++;
        if (i >= filesRadar.Length)
        {
            i = 0;
        }                
        label2.Text = dates[i].ToString("ddd, dd MMM yyy HH':'mm");                
    }
    else
    {
        label2.Text = ""; // optional?
    }
}

您不需要 if-statement,因为循环只会在数组中有项目时执行:

for (int i = 0; i < filesRadar.Length; i++)
{
    label2.Text += dates[i].ToString("ddd, dd MMM yyy HH':'mm") + Enviroment.NewLine;
}