我是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自动...
您可以使用For
或Foreach
和Linq
在表单的元素上循环: