繁体   English   中英

TableLayoutPanel(C#WinForms)中的Foreach控件循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM