所以我的程序中确实有一个WinForm,其中包含一系列每个ComboBox和两个TextBox。有atm 8行,但这将增加到至少32行,因此我想使用Array或类似的设备。我该怎么办?
我当前的工作方法是创建一个新的TextBoxes / ComboBoxes数组,我手动为其分配WinForm的指定Elemt。因此,我有一个这样的列表:
<div class="image" style="height: 300px;width:300px;" [ngStyle]="{'background': ' url(' + imageUrl + ') no-repeat 0 0'}"></div>
当然,这看起来很糟糕,而且如果被多次复制,效果也不佳。任何人都可以解决我的问题吗?
我需要访问ComboBox的SelectedIndex和TextBoxes的文本。 我希望可以避免通过代码手动创建所有Elements。
答案 0 :(得分:1)
一种简单的解决方案是使用数组初始化程序语法:
ComboBox[] cbS = new[] { cbS1, cbS2, cbS3 ... };
执行此操作的另一种方法是完全删除变量cbS1
,cbS2
... cBSn
,并在for循环中创建控件。
ComboxBox[] cbS = new ComboBox[32];
// declare the text box arrays here as well
for (int i = 0 ; i < cbS.Length ; i++) {
cbS[i] = new ComboBox();
cbS[i].Location = ... // use "i" to help you position the control
// configure your combo box ...
this.Controls.Add(cbS[i]);
// do the same for the text boxes.
}
第三种方法是创建自定义控件:
// name this properly!
public class MyControl: UserControl {
public ComboBox CbS { get; }
public TextBox TbGU { get; }
public TextBox TbGO { get; }
public MyControl() {
// create and configure the combo box and text boxes here ...
}
}
然后,您可以使用for循环创建许多MyControl
。