【发布时间】:2017-12-07 21:22:56
【问题描述】:
我遇到了这个问题。我有一个带有 20 个标签的面板。函数 generator() 为每个标签分配数组的编号。每个数字从 1 滚动到所需的数字。但问题是号码分配不正确。例如,第一个数字分配给 1 个标签,下一个数字分配给 10 个标签,下一个分配给 2,下一个分配给 11 等。
但我需要以 rtl 或 ltr 顺序输出数字。
我不知道如何解决它。请帮忙。
public void generator() // присваивание текстбоксам значений
{
generatedArray = getUniqueRandomArray(1, 81, 20).ToArray();
for (int i = 0; i < panel1.Controls.Count; i++)
{
for (int j = 1; j < generatedArray[i] + 1; j++)
{
panel1.Controls[i].Text = j.ToString();
Thread.Sleep(50);
panel1.Controls[i].Refresh();
}
}
}
我会很感激你的帮助:)
【问题讨论】:
-
使用
Thead.Sleep不适合为您的 UI 设置动画。 -
@AluanHaddad 我知道,但这不是我目前的问题 :)
-
panel1.Controls不是一个井井有条的集合(嗯,它可能是,但我怀疑我们知道事物的内部顺序)。我建议您以一种允许您使用panel1.FindControl(lblName)根据您的getUniqueRandomArray索引构造lblName 来寻址它们的方式智能地命名您的标签控件。 -
如果不知道自己想做什么,很难说,但有几件事很突出。您每次通过 j 循环更新相同的
panel1.Controls[i],并且 50 毫秒的睡眠将不可见。结果就像您将内部循环替换为panel1.Controls[i].Text = generatedArray[i].ToString();