好吧,讓我們說我有一個整數,稱爲abc
,我設置了abc到2.
如何說label2.visible = true;
?在對象名稱中使用變量
我的意思是,如果我設置ABC 3我要讓label3.visible = true;
好吧,讓我們說我有一個整數,稱爲abc
,我設置了abc到2.
如何說label2.visible = true;
?在對象名稱中使用變量
我的意思是,如果我設置ABC 3我要讓label3.visible = true;
在我看來,最簡單的把你的控件到一個數組如下:
Label[] labels = new Label[] { label0, label1, label2, label3 };
切換的知名度是這樣的:
void SetVisibility(int index, bool visible)
{
labels[index] = visible;
}
你的解決方案似乎是最好的,即使它不完全是我想要的,它已經夠好了。並且足夠短^^ – Foresp 2011-05-06 01:23:58
做的方式,它是有和標籤的數組,然後根據號碼,你可以這樣做:
label_array[abc].visible = true;
要回答你的實際問題,這可能是通過反思,但不是你真的想做的事情,我想不出有效的用例。
正如其他人發佈一樣,使用一個數組。
我明白了。數組很容易:)(+ btw) – Foresp 2011-05-06 01:26:19
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;
另外,您可以得到子控件的父窗體的列表中的標籤,並設置可見性的方式。
謝謝你,這看起來不錯,我會用數組tho。(+) – Foresp 2011-05-06 01:29:30
兩個簡單的例子
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;
}
是的,但這是好的...不是真的,這將工作2或3標籤但當我有更多的標籤(我這樣做)時,我真的不想寫這麼多的代碼。 – Foresp 2011-05-06 01:27:46
是的,它不是最好的方法,但我不知道你的編程水平,所以我試圖幫助一個想法:)...去數組的例子:D – user710502 2011-05-06 01:32:16
你可以做這樣的事情:
var theLabel = (Label) this.Controls.Find("label" + abc.toString());
theLabel.Visible = true;
此代碼是未經測試,並把我的頭頂部,但它應該工作。
謝謝。這很好(+) – Foresp 2011-05-06 01:25:48
不客氣!希望這可以幫助! – SquidScareMe 2011-05-06 01:27:46
您想要使用Control.FindControl
方法。
Label label = myForm.FindControl("label" + val) as Label;
if (label != null)
{
// use...
}
,看起來像我想要的,但使用數組看起來更簡單,更簡單,+點。 – Foresp 2011-05-06 01:25:13
對不起,但我沒有得到它 - 你可以改述或說明你正在嘗試做什麼? – 2011-05-06 01:07:15
我指出了一切,你都是正確的:) – user710502 2011-05-06 01:16:34