【问题标题】:How would I select a object by name from a string [duplicate]如何从字符串中按名称选择对象[重复]
【发布时间】:2021-02-14 19:01:35
【问题描述】:

我的措辞问题真的很糟糕,但希望能更好地展示我的问题。另外,如果有人有更好的方式来表达这个问题,请告诉我,我会改变它。

for(int i = 0; i < 208; ++i)
{
        string p = "panel" + i.ToString();
        
        //This thing
        p.Location = new Point(1, 0);
}

是的,我知道这不是它是如何完成的,但我怎样才能正确地做到这一点。我一直在寻找一段时间,但不知道如何解决这个问题。

【问题讨论】:

  • 如果你想用某个键查找对象,你可能需要Dictionary
  • 这里最大的问题是你有 208 个面板。手动创建这些将是一场噩梦,因此如果您通过代码创建它们,那么您应该保留一个面板数组,在这种情况下,您只需索引一个数组即可获得您需要的面板。跨度>

标签: c#


【解决方案1】:

假设 WinForms...

使用Controls.Find()函数:

for(int i = 0; i < 208; ++i)
{
    string pnlName = "panel" + i.ToString();
    Panel pnl = this.Controls.Find(pnlName, true).FirstOrDefault() As Panel;
    if (pnl != null) 
    {
        pnl.Location = new Point(1, 0);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 2015-07-14
    • 2013-01-12
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多