TX Text Control文字处理教程(2)- 文件操作
本章主要演示如何使用 TX Text Control .NET 加载和保存文件。
该章节相应的源代码可以在TX Text Control.NET的安装目录中找到:
Samples\WinForms\VB.NET\ Files
Samples\WinForms\CSharp\ Files
第一节:使用集成对话框
打开和保存文件最便捷的方法就是调用Load和Save方法,而且无需传入任何参数。通过这种方法,只需一行代码就可以打开文件对话框,选择文件类型和文件之后就可以在TextControl中显示文件的内容。
第二节:限定文件类型
缺省状态下Load和Save方法会显示所有Text Control支持的文件类型,如果你只希望显示特定的文件类型,你可以指定将被显示的文件类型参数,Text Control支持的文件类型可以通过StreamType取得。例如,只需要显示HTML和RTF类型的文件时,可以通过以下代码来实现:
第三节:显示文件名
在窗体上显示当前正在编辑文件的文件名是一个很好的用户体验,通常是访问OpenFileDialog.FileName属性来取得文件名,但此时OpenFileDialog是在Text Control内部调用的,所以无法直接取到FileName属性。下面的代码演示了再调用Load方法是如何通过LoadSettings来取得FileName属性:
1 [C#]
2 private void mnuFile_OpenFile_Click(object sender, System.EventArgs e)
3 {
4 TXTextControl.LoadSettings LoadSettings = new TXTextControl.LoadSettings();
5 textControl1.Load(TXTextControl.StreamType.All, LoadSettings);
6 this.Text = LoadSettings.LoadedFile;
7 }
第四节:保存文件
文字处理程序一般都有【Save...】和【Save As...】操作,如果该文件不是新创建的,那么可以直接通过【Save】方法将其保存为同样的文件名和文件类型。
示例程序中定义了DocumentFileName 和 DocumentStreamType两个变量,用于保存当前文件的文件名和文件类型,当打开文件时会更新这两个变量的值。
当点击【Save】时,如果DocumentFileName 和 DocumentStreamType有值就直接保存;如果是新建的文档将显示一个保存对话框:
[C#]
private void mnuFile_Save_Click(object sender, System.EventArgs e)
{
TXTextControl.SaveSettings SaveSettings = new TXTextControl.SaveSettings();
if (DocumentFileName != "" )
{
// save under same name and type
textControl1.Save(DocumentFileName, DocumentStreamType);
}
else
{
// save as..
textControl1.Save(TXTextControl.StreamType.All, SaveSettings);
DocumentFileName = SaveSettings.SavedFile;
DocumentStreamType = SaveSettings.SavedStreamType;
}
}
第五节:导出PDF和CSS文件
PDF和CSS格式需要特别注意,他们可以被保存,但是不能被在加载。比如你将文件保存为PDF文件,但是再次加载后不能像保存前那样进行编辑,CSS信息也不会被保存到文档中。解决这个问题最好的方法就是添加一个导出功能【Export...】,保存文件原始的格式信息。
[C#]
private void mnuFile_Export_Click(object sender, System.EventArgs e)
{
textControl1.Save(TXTextControl.StreamType.AdobePDF);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了