2011-05-06 105 views
3

好吧,讓我們說我有一個整數,稱爲abc,我設置了abc到2.如何說label2.visible = true;在對象名稱中使用變量

我的意思是,如果我設置ABC 3我要讓label3.visible = true;

+0

對不起,但我沒有得到它 - 你可以改述或說明你正在嘗試做什麼? – 2011-05-06 01:07:15

+0

我指出了一切,你都是正確的:) – user710502 2011-05-06 01:16:34

回答

6

在我看來,最簡單的把你的控件到一個數組如下:

Label[] labels = new Label[] { label0, label1, label2, label3 }; 

切換的知名度是這樣的:

void SetVisibility(int index, bool visible) 
{ 
    labels[index] = visible; 
} 
+0

你的解決方案似乎是最好的,即使它不完全是我想要的,它已經夠好了。並且足夠短^^ – Foresp 2011-05-06 01:23:58

2

做的方式,它是有和標籤的數組,然後根據號碼,你可以這樣做:

label_array[abc].visible = true; 
2

要回答你的實際問題,這可能是通過反思,但不是你真的想做的事情,我想不出有效的用例。

正如其他人發佈一樣,使用一個數組。

+0

我明白了。數組很容易:)(+ btw) – Foresp 2011-05-06 01:26:19

2

C#實際上不支持這種類型的語法。

將標籤放入某種結構中並用它來操作標籤。這裏舉幾個例子:

List<Label> labels = new List<Label>(); 
int i = /* some valid index (0 based) */ 
labels[i].visible = true; 

Dictionary<string, Label> labelDict = new Dictionary<string, Label>(); 
labelDict.add("label1", label1); 
labelDict["label1"].visible = true; 

另外,您可以得到子控件的父窗體的列表中的標籤,並設置可見性的方式。

+0

謝謝你,這看起來不錯,我會用數組tho。(+) – Foresp 2011-05-06 01:29:30

0

兩個簡單的例子

if(abc == 2) 
    { 
      label2.visible = true; 
      label3.visible = false; 
     } 
    else if(abc ==3) 
     { 
     label3.visible = true; 
     label2.visiable = false;  
     } 

or use a switch statement 

    switch(abc) 
    { 
     case 2: 
      label2.visible = true; 
      break; 
     case 3: 
      label3.visible = true; 
      break; 

    } 
+0

是的,但這是好的...不是真的,這將工作2或3標籤但當我有更多的標籤(我這樣做)時,我真的不想寫這麼多的代碼。 – Foresp 2011-05-06 01:27:46

+0

是的,它不是最好的方法,但我不知道你的編程水平,所以我試圖幫助一個想法:)...去數組的例子:D – user710502 2011-05-06 01:32:16

3

你可以做這樣的事情:

var theLabel = (Label) this.Controls.Find("label" + abc.toString()); 
theLabel.Visible = true; 

此代碼是未經測試,並把我的頭頂部,但它應該工作。

+1

謝謝。這很好(+) – Foresp 2011-05-06 01:25:48

+0

不客氣!希望這可以幫助! – SquidScareMe 2011-05-06 01:27:46

6

您想要使用Control.FindControl方法。

Label label = myForm.FindControl("label" + val) as Label; 

if (label != null) 
{ 
    // use... 
} 
+0

,看起來像我想要的,但使用數組看起來更簡單,更簡單,+點。 – Foresp 2011-05-06 01:25:13