C# 需要帮助才能抓取一列数据吗

C# 需要帮助才能抓取一列数据吗,c#,.net,winforms,windows-mobile,C#,.net,Winforms,Windows Mobile,我有些东西看起来像这样 H1 H2 CHK1 N1 D1 CHK2 N2 D2 CHK3 N3 D3 CHKN NN DN 1 2 3 4 5 6 7 8 9 10 11 // control positions if you had a counter counting with the foreach loop. 所以H1和H

我有些东西看起来像这样

        H1    H2
CHK1    N1    D1
CHK2    N2    D2
CHK3    N3    D3
CHKN    NN    DN


        1      2
 3      4      5
 6      7      8
 9      10     11

// control positions if you had a counter counting with the foreach loop.
所以H1和H2只是一些标签,Chk是复选框,N&D是标签。我动态地生成这个表

现在我想动态调整一些标签的大小。我想找到所有的N1,N2,N3,NN标签,并调整它们的大小

所以我不知道该怎么做

首先我找到了所有的控件

    foreach (Control c in panel.Controls)
    {
        if (c.GetType() == typeof(Label))
        {


        }


    }
现在我不知道如何抓住那N个。就像N1是控制4一样,N2是控制7,N3是控制10

所以一开始我试着得到所有的偶数控件,但我很快意识到N1控件是偶数然后是奇数


所以这是行不通的。因此,我不知道如何编写一些东西来获得我想要的控件。

大多数控件都有标记属性。您可以将这些控件的所有标记设置为所需的值,然后在脚本中检查标记值

foreach (Control c in Controls)
if (c.Tag == "MyTag")
{
    //Do required actions
}

如果这些控件中有任何一个在容器控件中,您也可以考虑使用递归函数。

我喜欢这种方式。我想出了一种使用(计数%3==1)的方法,这种方法很有效,因为某种原因,它得到的是D列而不是N列,所以不确定哪里出了问题。它应该给我N列,所以可能我做了其他错误,但我更喜欢这种方式,它更安全。如果出于某种原因,我将不必更改我的代码。因为Tag是一个对象,所以您唯一需要做的事情就是c.Tag.Tostring()。您可以在创建它们时跟踪它们吗?将它们存储在列表中,以便以后可以引用它们?