【问题标题】:Need help trying to figure out to grab a column of data需要帮助试图找出抓取一列数据
【发布时间】:2010-12-25 08:46:45
【问题描述】:

我有一些看起来像这样的东西

        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 控件是偶数然后是奇数。

所以这行不通。所以我不确定如何编写一些东西来获得我想要的这些控件。

【问题讨论】:

  • 创建它们时可以跟踪它们吗?将它们存储在列表中,以便以后参考?

标签: c# .net winforms windows-mobile


【解决方案1】:

大部分控件都有一个Tag属性,你可以将那些你需要的控件的所有标签设置成你想要的值,然后在迭代中,你可以检查标签值。

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

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

【讨论】:

  • 我喜欢这种方式。我想出了一种使用 (count % 3 == 1) 的方法,这个工作预期由于某种原因这会导致 D 列而不是 N 列,所以不确定出了什么问题。它应该给我 N 列,所以也许我做错了什么,但我更喜欢这种方式,它更安全。如果出于某种原因我翻转了列,我就不必更改我的代码。您唯一需要做的就是 c.Tag.Tostring() 因为 tag 是一个对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 2016-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多