我的应用程序中有30多个TextBox,我想按顺序添加每个文本框中文本文件的每一行。
private void button2_Click(object sender, EventArgs e)
{
if (path1 != null && Directory.Exists(path1))
{
var lines = File.ReadAllLines(path1);
foreach (var line in lines)
{
//what is here ?
}
}
}
所以,如果我有我的文本文件:
- 狗
- 电脑
- 钱
我想进来:
更新:添加了TextBoxes
的列表。现在,我如何一次访问一个文本框并在foreach
?
private void button2_Click(object sender, EventArgs e)
{
List<TextBox> textBoxes = new List<TextBox>();
for (int i = 1; i <= 37; i++)
{
textBoxes.Add((TextBox)Controls.Find("textBox" + i, true)[0]);
}
if (path1 != null && Directory.Exists(path1))
{
var lines = File.ReadAllLines(path1);
foreach (var line in lines)
{
//what is here ?
}
}
}
答案 0 :(得分:0)
将foreach转换为for并使用索引访问当前行以及指定的文本框:
if (path1 != null && File.Exists(path1))
{
var lines = File.ReadAllLines(path1);
for (var lineIndex = 0; lineIndex < Math.Min(lines.Length, textBoxes.Count); lineIndex++)
{
textBoxes[lineIndex].Text = lines[lineIndex];
}
}
答案 1 :(得分:0)
如果你想使用你的foreach循环,试试这个:
var textBoxIndex = 0;
foreach (var line in lines)
{
textBoxes[textBoxIndex++].Text = line;
}
答案 2 :(得分:0)
这是我的建议
public partial class Form1 : Form
{
string Path1 = "MyFile.txt";
List<TextBox> textBoxes = new List<TextBox>();
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
foreach (Control item in this.Controls)
{
if (item is TextBox)
{
textBoxes.Add((TextBox)item);
}
}
string[] lines = File.ReadAllLines(Path1);
for (int i = 0; i < lines.Length; ++i)
{
textBoxes[i].Text = lines[i];
}
}
}