c#更快速地阅读所有文本框/标签

时间:2014-11-05 16:39:58

标签: c# forms labels

我有一个带有九个按钮和标签的表单。按钮的单击功能可更新标签中的数字。最后,我将标签值保存到文件中。标签的名称如eLabel1,eLabel2,eLabel3 ..我正在使用环绕开关(case)来选择和保存标签。 我的问题是,如果交换机的代码行数较少?我想的是一个像#" e" + i这样的字符串。我知道那里没有.GetByName()但还有其他什么可以使用吗?喜欢.FromHandle()?

这是短版本。 我有九个标签eLabel1,eLabel2,eLabel3 ..

public void save()
{
  for (int i = 0; i < 9; i++)
  {
       string[] posstrings=switchpos(i+1);

       //string manipulation stuff
  }
}

    private string[] switchpos(int i)
    {

        string e;
        string[] posstrings;
        switch (i)
        {
            case 1:
                e = eLabel1.Text;
                break;
             case 2:
             //and so on
        }

        posstrings = new string[11] { e, m, l, s, b, pfc, pfr, pf3, cf, ct, cr};
        return posstrings;
    }

我想知道是否有不同的方法来进行切换。

1 个答案:

答案 0 :(得分:1)

您可以使用对标签的引用创建一个数组:

Label[] labels = { eLabel1, eLabel2, eLabel3, ... };

使用标签中的文本生成数组将是一行的:

string[] values = labels.Select(l => l.Text).ToArray();