这个问题非常自我解释.
public void changeActiveField(int thisFieldNumber) { string thisField = "Large" + thisFieldNumber; Panel thisPanel = (Panel)thisField; thisPanel.BackColor = Color.DarkBlue; }
我知道这不起作用,永远不会奏效.我希望该功能可以更改面板的BackColor.每个面板以"Large"开头,后跟一个数字.
很抱歉,如果这个问题非常简单,那我就是C#的新手.
所以,你的实际问题是:
如何在编译时获得名称未知的标签的引用?
解决方案取决于您使用的UI库.在WinForms的情况下,答案是:
Label thisPanel = (Label)this.Controls[thisField];
如果面板不在表单的正下方(但嵌套在其他控件中),请使用Find方法:
Label thisPanel = (Label)this.Controls.Find(thisField, true).SingleOrDefault();
请注意,null
如果未找到控件,则此表达式将生成.如果您喜欢这种情况下的运行时错误,请Single()
改用.