c#读取所有文本框/标签的更快方式

本文关键字:标签 方式 读取 文本 | 更新日期: 2023-09-27 18:29:11

我有一个表格,里面有九个集合的按钮和标签。按钮的单击功能会更新标签中的数字。最后,我将标签值保存到一个文件中。标签的名称类似于eLabel1、eLabel2、eLabel3。我使用for loop-wrapped-around switch(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;
    }

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

c#读取所有文本框/标签的更快方式

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

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

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

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