使用C#打开富文本框中的文件这个问题已经得到解答。我在下面推荐sumit_programmers解决方案。现在,我删除了我的代码,认为它比帮助更令人困惑。当我进一步开发它时,也许我会在这里发布我的代码并附上一些评论。您可能还对使用C#从富文本框中保存文本这一问题的答案感兴趣。有一个答案让人想起这个问题的答案。代码应该可以工作,但它是我写的,所以可能会有一些错误或信息缺失。更新:我对代码做了一些改进(至少我是这么认为的)。“Encoding.Default”似乎适用于最常见的编码,如ANSI。如果编码是没有字节顺序标记(BOM)的UTF-8,“Encoding.Default”似乎不起作用。如需更多信息,请访问informit.com/guides。这是我现在正在使用的代码:privatevoidfileOpen_Click(objectsender,EventArgse){using(OpenFileDialogdlgOpen=newOpenFileDialog()){try{//可用的文件扩展名dlgOpen.Filter="Allfiles(*.*)|*.*";//初始目录dlgOpen.InitialDirectory="D:";//OpenFileDialog标题dlgOpen.Title="Open";//显示OpenFileDialog框if(dlgOpen.ShowDialog()==DialogResult.OK){//创建新的StreamReaderStreamReadersr=newStreamReader(dlgOpen.FileName,Encoding.Default);//从文件中获取所有文本stringstr=sr.ReadToEnd();//关闭StreamReadersr.Close();//在富文本框中显示文本rtbMainrtbMain.Text=str;}}catch(ExceptionerrorMsg){MessageBox.Show(errorMsg.Message);}}}是的,当您尝试访问无法在RTF文本框中加载的文件时,您会收到此错误。如果要加载.rtf文件,则需要添加此行richTextBox1.LoadFile(dlg.FileName,RichTextBoxStreamType.RichText);如果要加载.txt文件,则需要添加此行richTextBox1.LoadFile(dlg.FileName,RichTextBoxStreamType.PlainText);示例代码:using(OpenFileDialogofd=newOpenFileDialog()){if(ofd.ShowDialog()==DialogResult.OK){if(Path.GetExtension(ofd.FileName)==".rtf"){richTextBox1.LoadFile(ofd.FileName,RichTextBoxStreamType.RichText);}if(Path.GetExtension(ofd.FileName)==".txt"){richTextBox1.LoadFile(ofd.FileName,RichTextBoxStreamType.PlainText);}}}catch(Exceptionex){}}编辑:好的,如果你想打开一个纯文本文件,回到原来的解决方案。您可以将MessageBox.Show更改为这一行:rtfMain.Text=File.ReadAllText(dlg.FileName);有关详细信息,请参阅ReadAllText的文档。try/catch位用于避免应用程序因未处理的错误而崩溃(有时让它崩溃可能是最好的做法,但即便如此,您通常也希望以某种可控的方式关闭它)。尤其是在处理文件时,由于某些原因它们很难加载,因此在代码周围加上一些错误处理可能会很有用,例如:try{rtfMain.Text=File.ReadAllText(dlg.FileName);}catch(Exceptionex)//应该尽量避免在这里捕获通用异常并使用更专业的异常{MessageBox.Show("Failedtoopenfile.Error:"+ex.Message);旧答案编辑如下:我忘了它是一个RichTextBox,所以我的第一个答案不合适,所以最好这样做:您可以将MessageBox.Show更改为这一行:rtfMain.LoadFile(dlg.FileName);也许添加一个适当的try/catch来处理读取文件中的任何错误。有关完整示例,请参阅RichTextBox.LoadFile的文档。以上就是C#学习教程:使用C#打开富文本框中的文件分享内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——try{openFileDialogfd=newopenFileDialog();fd.showDialog();richTextbox1.LoadFile(fd.FileName);}catch(Exceptionexc){MessageBox.Show(exc.Message);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
