-2
 private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string txt = "";
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "Text File|*.txt";
            ofd.FileName = "File";
            if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

                StreamReader sr = new StreamReader(File.OpenRead(ofd.FileName));

                while (txt != null) {



                    txt += sr.ReadLine() + "\n";
                    if (txt != null) richTextBox1.Text += txt;
                    else sr.Dispose();

                }

            }

        }

これは、開いているメニュー ストリップ項目がクリックされたときに実行することを目的とした私のコードです。しかし、どういうわけか、これは私のアプリケーションで立ち往生します。コードのエラーは何ですか?

4

2 に答える 2

2

txt に追加しているので、null になることはありません

   string line;
   while ((line = sr.ReadLine()) != null)
   {
      txt += line + "\n";
      if (txt != null) richTextBox1.Text += txt;
      else sr.Dispose(); // Remove after seeing below
   }

また、常にストリームリーダーを破棄する必要があるため、while ループを次のようにラップします (ストリームリーダー行も置き換えます)。

using(StreamReader sr = new StreamReader(File.OpenRead(ofd.FileName)))
{
//While loop here
}
于 2013-06-22T14:10:17.380 に答える