【发布时间】:2019-01-05 01:38:09
【问题描述】:
我正在开发一个 Windows 窗体应用程序,我想从我的本地计算机中获取一个文本文件,让应用程序读取文本文件并将文件中的每一行文本显示到应用程序的文本框中。我想在表单上按下一个按钮并显示文本文件的第一行,然后再次按下该按钮并显示第二行等。我一直在寻找这样做的方法,并发现 StreamReader 会可能最适合我想要实现的目标。
我目前有以下代码,但它似乎将每一行打印到一行。如果有人能看出原因,将不胜感激,我确信它是小东西。
private void btnOpen_Click(object sender, EventArgs e)
{
string file_name = "G:\\project\\testFile.txt";
string textLine = "";
if (System.IO.File.Exists(file_name) == true)
{
System.IO.StreamReader objReader;
objReader = new System.IO.StreamReader(file_name);
do
{
textLine = textLine + objReader.ReadLine() + "\r\n";
} while (objReader.Peek() != -1);
objReader.Close();
}
else
{
MessageBox.Show("No such file " + file_name);
}
textBox1.Text = textLine;
}
【问题讨论】:
-
如果你想为每个 btn 点击读取一行,你不能使用 while 循环来读取整个文件。您只能在每次单击时执行 .ReadLine()。其次,你必须使用多行文本框。
-
在整个过程中没有打开流。您应该将所有行放入一个字段中,然后遍历它们。如果您有非常大的文件,您可以尝试通过按钮按下事件记住流滚动。
-
@ElConrado 您可以读取整个文件,将每一行存储在一个变量中(可能是 List
),然后只需使用索引器并以这种方式添加一个新行?
标签: c# windows-forms-designer streamreader