使用C#和Windows窗体,我想使用Label
的名称作为另一个函数的参数,如下所示:
startBox(label_box, "11", Color.Red);
startBox
的定义:
private void startBox(Label label, string text, Color color) {
label.BackColor = color;
label.Visible = true;
label.Enabled = true;
label.Text = text;
}
但是,是否可以将string
转换为Label
的名称?
就我而言,label_box
是string
。
ps¹。。我需要这样做,因为我有N
Labels
,名称应该由用户输入。
ps²。。要使用string
调用方法,我使用了MethodInfo
。
编辑:使用Controls的解决方案不适用。就我而言,将字符串作为输入,如果字符串是调用该函数的标签之一的名称。
谢谢,抱歉英语的拼写错误。
答案 0 :(得分:1)
因此,您希望能够对标签进行操作,其中标签名称作为输入提供。我会用口述来做到这一点
var lDict = new Dictionary<string, Label>();
lDict["l1"] = Label1;
lDict["l2"] = Label2;
....
然后
void Func(string labelName)
{
var label = lDict[labelName];
label.Visible = true;
...
}
您可以进行各种复杂的反射处理,但是感觉像是过分的