[英]Foreach Loop of Controls in TableLayoutPanel (C# WinForms)
我有一个包含16个单元格的TableLayoutPanel,每个单元格中都有一个标签(表示时间)。
我正在尝试使用foreach循环将列表中的时间添加到所有标签。
int i = 0;
foreach (Control ctrl in tableLayoutPanel1.Controls)
{
if (ctrl is Label)
{
ctrl.Text = LessonsDAL.times[i];
}
i++;
}
尽管正在将文本添加到标签,但是循环似乎是以随机顺序将文本添加到标签。 我想知道是否有面板或标签的属性来控制它们在foreach循环中的访问顺序? 这可能是一个简单的解决方案,但是我找不到它!
非常感谢你的帮助!
修正您的for循环以提高速度和清晰度,因为每个循环在集合中都会出现怪异的现象,除非您先对其进行缓存。
TableLayoutControlCollection[] controls = tableLayoutPanel1.Controls;
for (int i = 0; i < controls.Count; i++) {
if (controls[i] is Label) {
controls[i].Text = LessonsDAL.times[i];
}
}
它的确取决于您在第一种情况下如何添加控件,您可能想看看您的获胜表单代码并查看名称/ ID,还可以给每个控件一个标签,然后在LessonsDAL.times下有一个字典,将使用标签名称并输出文本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.