代码如下:
OpenFileDialog dlg=new OpenFileDialog();
dlg.Filter="Rich Text Format(*.rtf)|*.rtf|Text File(*.txt)|*.txt|All Files(*.*)|*.*";
dlg.FilterIndex=1;
dlg.DefaultExt="rtf";
dlg.AddExtension=true;
dlg.RestoreDirectory=true;
dlg.Title="Open";
if(dlg.ShowDialog()==DialogResult.OK)
{
string fileName=dlg.FileName;;

try
{
using( StreamReader reader=new StreamReader(fileName))
{

richTextBox1.Clear();
richTextBox1.Text=reader.ReadToEnd();
}
}
catch(IOException ex)
{
MessageBox.Show(ex.Message,"Simple Editor",MessageBoxButtons.OK,MessageBoxIcon.Information);
}

解决方案 »

  1.   

    中文编码的问题,你可以设置一下StreamReader的Encoding,例如:
    StreamReader srAsciiFromFileFalse = 
            new StreamReader("C:\\Temp\\Test.txt",
            System.Text.Encoding.ASCII);或者让它自行判断,例如:
    StreamReader srAsciiFromFileFalse = 
            new StreamReader("C:\\Temp\\Test.txt", true );
      

  2.   

    我就把StreamReader reader=new StreamReader(fileName)改成
    StreamReader reader=new StreamReader(fileName,System.Text.Encoding.Default),读取txt文件就可以了,但是读取doc啊,rtf等格式就不行了,是不是要引入微软什么的类库啊?
      

  3.   

    那当然,doc和rtf的格式不是普通的文本,要ole来做
      

  4.   

    using (StreamReader sr1 = new StreamReader(FILE_INFO_NAME,UnicodeEncoding.GetEncoding("GB2312")))
      

  5.   

    找不到UnicodeEncoding啊,不知道在什么命名空间啊?
      

  6.   

    如果你想读出doc文档,参看
    http://www.codeproject.com/csharp/csautomateword.asp