C# WPF-如何关闭在RichTextBox中打开的文件
点击一个按钮,我在一个C# WPF-如何关闭在RichTextBox中打开的文件,c#,wpf,C#,Wpf,点击一个按钮,我在一个WPF应用中打开一个文件,如下所示。我有另一个关闭文件的按钮,但需要弄清楚如何关闭打开的文件后,阅读它,但不退出我的整个WPF应用程序 可以将其视为类似于Microsoft WORD应用程序中的场景,在该应用程序中,您可以使用文件-->打开菜单项打开WORD文档,然后使用文件-->关闭菜单项关闭它,同时保持WORD应用程序在顶部功能区处于打开状态。在我的例子中,我在顶部有一个带有打开和关闭按钮的工具栏,我需要对其执行类似的打开/关闭文件操作: private void Bt
WPF
应用中打开一个文件,如下所示。我有另一个关闭文件的按钮,但需要弄清楚如何关闭打开的文件后,阅读它,但不退出我的整个WPF应用程序
可以将其视为类似于Microsoft WORD应用程序中的场景,在该应用程序中,您可以使用文件-->打开
菜单项打开WORD文档,然后使用文件-->关闭
菜单项关闭它,同时保持WORD应用程序在顶部功能区处于打开状态。在我的例子中,我在顶部有一个带有打开和关闭按钮的工具栏,我需要对其执行类似的打开/关闭文件操作:
private void BtnOpenFile_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Rich Text Format (*.rtf)|*.rtf|All files (*.*)|*.*";
if (dlg.ShowDialog() == true)
{
FileStream fileStream = new FileStream(dlg.FileName, FileMode.Open);
TextRange range = new TextRange(mainRTB.Document.ContentStart, mainRTB.Document.ContentEnd);
range.Load(fileStream, DataFormats.Rtf);
}
}
如果您想“关闭”其内容显示在RichTextBox中的文件,我认为清除RichTextBox并释放资源就足够了
“处理您的资源”,我的意思是关闭
文件流
,或者使用将其包装在中。因此不是代码编写服务。你试过什么?只是给你一个提示:一旦你释放了你的FileStream资源(这是一次性的),它看起来就像你“关闭”了文件。此外,真正的问题是什么?如果要“关闭”文件,清除RichTextBox并释放资源是不够的?filestream.close()
将关闭它。您可能还应该Dispose()
它,或者更好的是,使用@BradleyUffner将它包装在中。您的意思是,使用包装将同时处理。Close()
和Dispose()
正确吗?@nam Yes。如果在读取流时出现错误,它甚至会关闭/处理该流。@Albertoslano实际上,您评论的最后一行就是解决方案(谢谢):不足以清除RichTextBox并处理您的资源?
如果您愿意,可以将您的评论转换为回复
,我将其标记为回复
,以便其他人也可以从中受益。