什么是存储大量标签的好方法?

问题描述 投票:0回答:1

我是Windows窗体的新手,并且我想出了一个UI:Small cut of the UI

您会注意到的第一件事是我创建的16个标签和文本框。Windows Forms / Visual Studio以下列方式自动生成这些:

    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.Label label2;
    private System.Windows.Forms.Label label3;
    ...
    private System.Windows.Forms.Label label16;

很好,但是由于我必须用例如单个地址来寻址每个标签,所以我尝试从这些字段中读取信息后碰到了墙。

    label1.Text;
    label2.Text;
    ...
    label16.Text;

我想到使用for循环,直到我偶然发现名称不相同/可递增的事实。刚开始我就像这样解决了:

    Label[] _labels = new Label[16];
    this._labels[0] = label1;
    this._labels[1] = label2;
    this._labels[2] = label3;
    ...
    this._labels[15] = label16; // I have to instantiate the labels in order to work with them.

但是随着代码的进步,每当我需要从文本框中检索数据时,我也必须对文本框执行相同的操作,它很快就变成了非DRY代码。

我尝试按照以下方式做一些事情:

    for(int i = 0; i < _labels.Length; i++) {
       _labels[i] = label{i}; // this won't work sadly enough
    }

但是那也没有解决。除非我真的需要,否则是否有一种有效的方法来调用和存储这些标签/文本框?

谢谢!

我是Windows窗体的新手,我想出了一个UI:UI的一小部分您会注意到的第一件事是我创建的16个标签和文本框。 Windows窗体/ Visual Studio自动...

c# performance user-interface windows-forms-designer
1个回答
0
投票

您可以使用ForForeachLinq在表单的元素上循环:

© www.soinside.com 2019 - 2024. All rights reserved.