我在c#中制作一个基本的文字处理器用于培训。现在我将打开文件作为其中的一部分。我可以毫无问题地打开文本文件。但是当我打开打开文件对话框然后取消它时,它崩溃了:/
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
var OpenFile = new System.IO.StreamReader(openFileDialog1.FileName);
getRichTextBox().Text = OpenFile.ReadToEnd();
}
我知道这是因为流读取器无需阅读,但我不知道如何解决这个问题。
提前谢谢! 编辑:谢谢!它完美地工作:)答案 0 :(得分:8)
您需要检查对话框的结果:
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK) {
using (var openFile = new StreamReader(openFileDialog1.FileName)) {
getRichTextBox().Text = OpenFile.ReadToEnd();
}
}
}
我还添加了using
语句,以确保您的文件在阅读完毕后关闭。
您只需使用File.ReadAllText
而不是使用StreamReader
,就可以进一步简化代码。
getRichTextBox().Text = File.ReadAllText(openFileDialog1.FileName);
(谢谢@keyboardP)
答案 1 :(得分:1)
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
var OpenFile = new System.IO.StreamReader(openFileDialog1.FileName);
getRichTextBox().Text = OpenFile.ReadToEnd();
}