好吧,让我们说我有一个整数,称为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