You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过数组批量更新多个TextBox控件内容?

问题原因与修复方案

失效原因

你这段循环代码没起作用的核心问题是:字符串是值类型。你创建的exercises数组存储的是每个TextBox.Text属性的字符串副本,而非TextBox控件本身的引用。循环中修改exercises[i]只是改变了数组里的字符串值,完全不会影响到对应的TextBox控件的Text属性,自然界面上的内容不会更新。

修复代码

正确的做法是直接存储TextBox控件的引用数组,通过控件引用直接修改其Text属性:

// 存储TextBox控件的引用,而非Text属性的副本
TextBox[] exerciseBoxes = new TextBox[] { textBox1_1, textBox1_2, textBox1_3, textBox1_4, textBox1_5, textBox1_6, textBox1_7};

string[] lines = System.IO.File.ReadAllLines("savedWorkout.txt");

// 循环修改每个TextBox的Text属性
for (int i = 0; i < exerciseBoxes.Length; i++)
{
    exerciseBoxes[i].Text = lines[i];
}

额外优化(可选)

为了避免文件行数和TextBox数量不一致导致的索引越界异常,可以增加长度判断:

string[] lines = System.IO.File.ReadAllLines("savedWorkout.txt");
TextBox[] exerciseBoxes = new TextBox[] { textBox1_1, textBox1_2, textBox1_3, textBox1_4, textBox1_5, textBox1_6, textBox1_7};

// 取两者中较小的长度,防止数组越界
int validCount = Math.Min(lines.Length, exerciseBoxes.Length);
for (int i = 0; i < validCount; i++)
{
    exerciseBoxes[i].Text = lines[i];
}

内容的提问来源于stack exchange,提问作者Ethan Harris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:45:29