使用可变参数访问表单对象
Access a form object using variable parameters
有没有办法让我访问带有可变参数的标签?例如,我有一个标签列表(lbl00、lbl01、lbl02、lbl10、lbl11、lbl12)并且需要能够以编程方式访问它们以更改背景颜色。在下面的示例中,strLabel = "lbl01",这将对应于我表单中的正确对象,但这不能作为字符串传递。有什么方法可以让我完成这项工作吗?
谢谢!
private void btnTest_Click(object sender, EventArgs e)
{
TestHilight("0", "1");
}
public void TestHilight(string x, string y)
{
String strLabel = "lbl" + x + y;
strLabel.BackColor = System.Drawing.Color.Green;
}
如果你在内存中跟踪你的标签会更好,但如果你想找到一个 Label
或基于名称的控件,那么你可以使用 Control.Find
方法:
var control = this.Controls.Find(strLabel, true); //pass "lbl" + x + y;
if(control != null && control.OfType<Label>().Any())
{
//label found
Label label = control.OfType<Label>().First() as Label;
label.BackColor = System.Drawing.Color.Green;
}
您可以像这样缩短您的代码:
public void TestHilight(string x, string y)
{
var matchedLabel = Controls.Find("lbl" + x + y, true).OfType<Label>().FirstOrDefault();
if (matchedLabel != null)
{
//label found
matchedLabel.BackColor = System.Drawing.Color.Green;
}
}
您可以在字典中维护对标签控件的引用,其中键是字符串,例如lbl01,当需要设置BackColor时,从Dictionary中找到对应的label,设置其属性。
或者,您可以按名称搜索控件并设置其背景色 属性
有没有办法让我访问带有可变参数的标签?例如,我有一个标签列表(lbl00、lbl01、lbl02、lbl10、lbl11、lbl12)并且需要能够以编程方式访问它们以更改背景颜色。在下面的示例中,strLabel = "lbl01",这将对应于我表单中的正确对象,但这不能作为字符串传递。有什么方法可以让我完成这项工作吗?
谢谢!
private void btnTest_Click(object sender, EventArgs e)
{
TestHilight("0", "1");
}
public void TestHilight(string x, string y)
{
String strLabel = "lbl" + x + y;
strLabel.BackColor = System.Drawing.Color.Green;
}
如果你在内存中跟踪你的标签会更好,但如果你想找到一个 Label
或基于名称的控件,那么你可以使用 Control.Find
方法:
var control = this.Controls.Find(strLabel, true); //pass "lbl" + x + y;
if(control != null && control.OfType<Label>().Any())
{
//label found
Label label = control.OfType<Label>().First() as Label;
label.BackColor = System.Drawing.Color.Green;
}
您可以像这样缩短您的代码:
public void TestHilight(string x, string y)
{
var matchedLabel = Controls.Find("lbl" + x + y, true).OfType<Label>().FirstOrDefault();
if (matchedLabel != null)
{
//label found
matchedLabel.BackColor = System.Drawing.Color.Green;
}
}
您可以在字典中维护对标签控件的引用,其中键是字符串,例如lbl01,当需要设置BackColor时,从Dictionary中找到对应的label,设置其属性。
或者,您可以按名称搜索控件并设置其背景色 属性