在 C# 的单独文本框中添加文本文件中的每一行
本文关键字:文本 一行 添加 单独 文件 | 更新日期: 2024-10-31 10:56:56
我的应用程序中有 30+ 个文本框,我想按顺序在每个文本框中添加文本文件的每一行。
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 ?
}
}
}
因此,如果我的文本文件中有:
-狗
-计算机
-钱
我想拥有:
- 文本框1第一行(狗)
- 文本框2第二行(计算机)
- 文本框3第三行(钱)
更新:添加了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 ?
}
}
}
将 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];
}
}
这是我的建议
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];
}
}
}
如果你想使用你的foreach循环,试试这个:
var textBoxIndex = 0;
foreach (var line in lines)
{
textBoxes[textBoxIndex++].Text = line;
}