【发布时间】:2018-09-26 19:59:28
【问题描述】:
使用 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 的解决方案不适用。在我的例子中,如果字符串是调用函数的标签之一的名称,则给出一个字符串作为输入。
谢谢,对于英文的拼写错误,我们深表歉意。
【问题讨论】:
-
winforms? wpf?你用的是什么技术?
-
windows 窗体,问题已编辑 :)
-
@JohnnyMopp 我知道
Labels的名称(控制它只是为了获取所有控制)。我需要的是获取一个字符串作为输入并检查具有该名称的标签,然后调用该函数,thks :) -
查看骗局中的第一个答案。在我看来,这正是您所需要的:
Label label = this.Controls.Find(label_box, true).FirstOrDefault() as Label;或者更简单地说:Label label = this.Controls[label_box] as Label(但您需要确保存在且不嵌套)。