openfile对话框取消崩溃

时间:2013-08-12 21:55:46

标签: c# openfiledialog

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

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

我知道这是因为流读取器无需阅读,但我不知道如何解决这个问题。

提前谢谢!

编辑:谢谢!它完美地工作:)

2 个答案:

答案 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();
}