当前位置:  开发笔记 > 编程语言 > 正文

将字符串转换为Panel

如何解决《将字符串转换为Panel》经验,为你挑选了1个好方法。

这个问题非常自我解释.

public void changeActiveField(int thisFieldNumber)
    {
        string thisField = "Large" + thisFieldNumber;
        Panel thisPanel = (Panel)thisField;
        thisPanel.BackColor = Color.DarkBlue;
    }

我知道这不起作用,永远不会奏效.我希望该功能可以更改面板的BackColor.每个面板以"Large"开头,后跟一个数字.

很抱歉,如果这个问题非常简单,那我就是C#的新手.



1> Heinzi..:

所以,你的实际问题是:

如何在编译时获得名称未知的标签的引用?

解决方案取决于您使用的UI库.在WinForms的情况下,答案是:

Label thisPanel = (Label)this.Controls[thisField];

如果面板不在表单的正下方(但嵌套在其他控件中),请使用Find方法:

Label thisPanel = (Label)this.Controls.Find(thisField, true).SingleOrDefault();

请注意,null如果未找到控件,则此表达式将生成.如果您喜欢这种情况下的运行时错误,请Single()改用.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有