所以我有一个由脚本动态生成的表单,为每个作为参数提取的字符串都有一个标签和一个文本框。我希望用户填写每个文本框,然后选择 OK 按钮。之后我想处理每个文本框的每个项目。之前只有一项的时候,我写了一个很简单的属性来获取文本框的值。
Public string Text { get { return textbox1.Text; } }
我希望我可以用动态数量的文本框做同样优雅的事情。
Public string [] Text { get { return **Each text box text as an array**; } }
我已经考虑了一段时间,但我想不出一种优雅的方式来设置它,这是文本框添加到表单的方式......
string[] keywords = Environment.GetCommandLineArgs();
int placement = 10;
foreach (string keyword in keywords)
{
if (keyword == keywords[0])
continue;
Label lbl = new Label();
lbl.Text = keyword;
lbl.Top = placement;
this.Controls.Add(lbl);
TextBox txt = new TextBox();
txt.Top = placement;
txt.Left = 100;
this.Controls.Add(txt);
placement += 20;
}
我可以在表单关闭时遍历每个文本框的文本并用值填充公共数组,但我宁愿想出一些更优雅的东西,并摆脱强迫做事的习惯。有人对如何做到这一点有任何很酷的想法吗?我想我可以将所有文本框添加到一个数组中,然后让字符串属性以某种方式获取指定文本框的文本,或者只是将文本框数组设为公共属性。有没有办法写出这样的东西......
Public string [] Text { get { return TextBoxArray[**value trying to be gotten**].Text; } }
或者这对于一个属性来说太多了,需要成为一个方法?任何人有任何其他想法?我意识到这是一个微不足道的问题,可以通过多种方式解决,我只是希望通过一些很酷的方式来拓宽我的视野来完成这样的事情。