我试图读取一个文本文件并将其显示到Richtextbox中,并包含新行。说我想把它读成:
你好
你好
你好
但是它是这样读的: HelloHelloHello
这是我到目前为止掌握的代码:
private void btnView_Click(object sender, EventArgs e)
{
OpenFileDialog op = new OpenFileDialog();
op.InitialDirectory = "C:\\";
op.Filter = "Txt files (*.txt)|*.txt|All Files (*.*)|*.*";
op.FilterIndex = 2;
if (op.ShowDialog() == DialogResult.OK)
{
textBox1.Text = op.FileName;
string path = op.FileName;
StringBuilder sb = new StringBuilder();
using (StreamReader sr = new StreamReader(path))
{
while(sr.Peek() >= 0)
{
sb.Append(sr.ReadLine());
Console.WriteLine("\r\n");
}
}
richTextBox1.Text = sb.ToString();
}
}发布于 2017-04-29 00:58:25
StreamReader行由Environment.NewLine分隔。如果您阅读了文档,您就会注意到ReadLine不包括这些分隔符。如果要重新添加它们,请使用:
sb.Append(sr.ReadLine());
sb.Append(Environment.NewLine);不要在Console.WriteLine()应用程序中调用WinForms。
发布于 2017-04-29 01:27:35
另一种方法是使用File类的静态ReadAllText()方法。
您只需将路径传递给文本文件,它就会将所有文本(包括换行)读入字符串中,并将其返回给您。然后,您只需将其结果设置为richTextBox1.Text属性,以获得更清晰、更易于阅读的代码:
if (op.ShowDialog() == DialogResult.OK)
{
textBox1.Text = op.FileName;
richTextBox1.Text = File.ReadAllText(op.FileName);
}发布于 2017-04-29 01:05:22
更改行文:
Console.WriteLine("\r\n");至:
sb.Append("/r/n");https://stackoverflow.com/questions/43690707
复制相似问题