2

我正在用 c# 制作一个基本的文字处理器来进行培训。现在我将打开文件作为其中的一部分。我可以毫无问题地打开文本文件。但是当我打开打开文件对话框然后取消它时,它崩溃了:/

private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
    openFileDialog1.ShowDialog();
    var OpenFile = new System.IO.StreamReader(openFileDialog1.FileName);
    getRichTextBox().Text = OpenFile.ReadToEnd();
}

我知道这是因为流式阅读器没有什么可读的,但我不知道如何解决这个问题。

提前致谢!

编辑:谢谢!它工作得很好:)

4

2 回答 2

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)

于 2013-08-12T21:57:19.377 回答
1
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    var OpenFile = new System.IO.StreamReader(openFileDialog1.FileName);
    getRichTextBox().Text = OpenFile.ReadToEnd();
}
于 2013-08-12T21:58:18.550 回答