2009-12-10 18 views
0

我有一些看起來像這樣需要幫助,試圖找出搶數據

 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 &只是一些標籤,清潔香港是複選框和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控制走得那麼奇怪。

這樣就行不通了。所以我不知道如何寫一些東西來獲得我想要的這些控件。

+0

您可以在創建它們時跟蹤它們嗎?將它們存儲在一個列表中,以便稍後可以引用它們? – 2009-12-10 18:07:00

回答

2

大多數控件都有Tag屬性,你可以設置你需要給你希望的值控制的所有標籤,然後在itteration,你可以檢查標籤值。

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

您也不妨考慮一下遞歸函數,如果這些控件是容器控件。

+0

我喜歡這種方式。我想出了一種使用(計數%3 == 1)的方法,並且此作品預計由於某種原因,D列不是N列,所以不知道哪裏出了問題。它應該給我N列,所以也許我做了一些其他的錯誤,但我更喜歡這種方式更安全。如果由於某種原因我翻轉了列,我不必更改我的代碼。你唯一需要做的就是c.Tag.Tostring(),因爲tag是一個對象。 – chobo2 2009-12-10 18:38:05