这是我的第一篇文章。我正在创建带有 89 个文本框的 ac# 应用程序。文本框被命名为“Box#”我如何在循环中更改文本框的值?像这样的东西:
for (int y = 0; y < 89; y++)
{
"Box"+y.Text = "somthing";
}
String
当您使用"Box"
. 我建议将所有TextBox
对象放入列表中。
List<TextBox> boxes = new List<TextBox>();
// Add all of your text boxes.
foreach (TextBox box in boxes) {
box.Text = "This will change the text";
}
您可以检查Type
表单上的控件,如果Type
是TextBox
则,只需调整测试(VIA 循环)。
代码片段;
public Form1()
{
InitializeComponent();
ChangeTextBoxes();
}
public void ChangeTextBoxes()
{
foreach (var c in this.Controls.OfType<TextBox>())
{
c.Text = @"New Value";
}
}
希望这可以帮助。
如果您在视图中进行此更改(使用 Javascript 的客户端),请使用“eval()”函数。
与此类似的东西:
eval('Box' + count + '.Text = "'+newText+'";');
如果您以编程方式创建文本框,则可以将它们的Text
属性绑定到 a DataTable
,这将为您提供一些很好的可维护性功能:
DataTable _tbValues;
private void Form1_Load(object sender, EventArgs e)
{
_tbValues = new DataTable();
string[] cells = new string[89];
for (int i = 0; i < 89; i++)
{
_tbValues.Columns.Add(String.Format("Box{0}", i));
var tb = new TextBox();
tb.Name = String.Format("Box{0}", i);
tb.DataBindings.Add("Text", _tbValues, String.Format("{0}", tb.Name));
tb.Top = i * 20;
this.Controls.Add(tb);
}
_tbValues.Rows.Add(cells);
}
private void button1_Click(object sender, EventArgs e)
{
_tbValues.Rows[0].ItemArray = Enumerable
.Repeat(DateTime.Now as object, _tbValues.Columns.Count)
.ToArray();
_tbValues.AcceptChanges();
}