c#-RTF文本编辑器
1“.RTF”什么?
多信息文本格式 (RTF) 是一种方便于不同的设备、系统查看的文本和图形文档格式。
RTF 使用美国国内标准协会 (ANSI)、 PC-8、 Macintosh(mac苹果),或 IBM 的 PC 字符设置控制显示形式和打印形式。
在不同的操作系统下创建的RTF文档能够在多种操作系统和应用程序之间互相传输、查看。
当前,作为 MS-DOS、 Microsoft Windows、 OS/2、 Macintosh苹果系统,应用程序之间处理文档的特殊翻译软件。
RTF是Rich Text Format的缩写,意即多文本格式。
这是一种类似DOC格式(Word文档)的文件,有非常好的兼容性,使用Windows“附件”中的“写字板”就能打开并进行编辑。
使用“写字板”打开一个RTF格式文件时。将看到文件的内容;假设要查看RTF格式文件的源码,仅仅要使用“记事本”将它打开即可了。这就是说,你全然能够像编辑HTML文件一样,使用“记事本”来编辑RTF格式文件。
作为微软公司的标准文件,早期外界须要数十美元向微软付款,才干购买一本薄薄的RTF标准文件。只是随着採用RTF格式标准的软件愈来愈多。RTF格式也愈来愈普遍。微软公司就把标准文件公开。放在网上供开发人员下载。
RTF格式是很多软件都可以识别的文件格式。
比方Word、WPS Office、Excel等都可以打开RTF格式的文件。
对普通用户而言,RTF格式是一个非常好的文件格式转换工具,用于在不同应用程序之间进行格式化文本文档的传送。
通用兼容性应该是RTF的最大长处,但同一时候也就具有它的缺点。比方文件一般相对较大(可能由于嵌入了兼容各种应用程序的控制符号吧)、WORD等应用软件特有的格式可能无法正常保存等。
2.代码例如以下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using FCG.Windows.Forms; namespace RTF
{
public partial class RTF : Form
{
public RTF()
{
InitializeComponent();
} /// <summary>
/// 获取文档编辑区域使用的 RtfEditor 实例。
/// </summary>
internal RtfEditor RtfEditor
{
get
{
return rtfEditor;
}
} void rtfEditor_FileNameChanged(object sender, EventArgs e)
{
string FileName = Path.GetFileName(rtfEditor.FileFullName);
if (FileName == "")
FileName = "YYS-RTF编辑器";
this.Text = FileName;
} protected override void OnLoad(EventArgs e)
{
base.OnLoad(e); string[] args =Environment.GetCommandLineArgs();
if (args.Length < 2)//arg[0]=exepath , arg[1] = filename
{
//File_Func_NewFile();
}
else
{
string filename =args[1];
if(filename.Trim().ToLower()!="-test")
rtfEditor.LoadFile(filename);
} rtfEditor.FileNameChanged += new EventHandler(rtfEditor_FileNameChanged);
rtfEditor_FileNameChanged(this, null);
} /// <summary>
/// 在关闭程序之前,推断文本是否须要保存
/// </summary>
private void App_Closing(FormClosingEventArgs e)
{
if (rtfEditor.Modified)
{//文档被改动过
DialogResult result = MessageBox.Show("文件内容已更改,想保存文件吗?", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
switch (result)
{
case DialogResult.Yes: //“保存”,则运行保存文件的操作
//假设没有选择要保存的文件名称。则弹出保存对话框。由用户选择要保存的文件名称后保存文本
if (saveFileDialog.FileName == "")
{
if (saveFileDialog.ShowDialog(this.TopLevelControl) == DialogResult.OK)
{
rtfEditor.SaveFile(saveFileDialog.FileName, RichTextBoxStreamType.PlainText);
}
}
else
{
//假设已经选择了要保存的文件名称,则保存文本到文件里
rtfEditor.SaveFile(saveFileDialog.FileName, RichTextBoxStreamType.PlainText);
}
break;
case DialogResult.No://不保存
break; default://取消操作
e.Cancel = true;
break;
}
}
}
/// <summary>
/// 事件处理 - 窗体关闭
/// </summary>
/// <param name="e"></param>
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e); if (!this.Modal)
App_Closing(e);
} }
}
3.如图所看到的:
版权声明:本文博主原创文章。博客,未经同意不得转载。
c#-RTF文本编辑器的更多相关文章
- [No0000139]轻量级文本编辑器,Notepad最佳替代品:Notepad++
在详细介绍Notepad++之前,先来解释一下,为何要选择Notepad++,即把常见的一些文本编辑器和Notepad++比较,看看其有哪点好: 常见的文本编辑器有很多,此处,只提及Notepad,N ...
- Tools - 文本编辑器Notepad++
00 - NotePad++ 官网 01 - Notepad++修改主题 依次点击设置---语言格式设置---选择主题,在显示界面中修改相关设置(背景色.前景色.字体等). 02 - Notepad+ ...
- 富文本编辑器直接从 word 中复制粘贴公式
在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...
- 如何从word文档复制内容到富文本编辑器
在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...
- wpf 富文本编辑器richtextbox的简单用法
最近弄得一个小软件,需要用到富文本编辑器,richtextbox,一开始以为是和文本框一样的用法,但是实践起来碰壁之后才知道并不简单. richtextbox 类似于Word,是一个可编辑的控件.结构 ...
- 富文本编辑器Simditor的简易使用
最近打算自己做一个博客系统,并不打算使用帝国cms或者wordpress之类的做后台管理!自己处于学习阶段也就想把从前台到后台一起谢了.好了,废话不多说了,先来看看富文本编辑器SimDitor,这里是 ...
- 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范
昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...
- 关于SMARTFORMS文本编辑器出错
最近在做ISH的一个打印功能,SMARTFORM的需求本身很简单,但做起来则一波三折. 使用环境是这样的:Windows 7 64bit + SAP GUI 740 Patch 5 + MS Offi ...
- 基于trie树的具有联想功能的文本编辑器
之前的软件设计与开发实践课程中,自己构思的大作业题目.做的具有核心功能,但是还欠缺边边角角的小功能和持久化数据结构,先放出来,有机会一点点改.github:https://github.com/chu ...
随机推荐
- 深入了解HTTP协议、HTTP协议原则
ttp协议学习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写. 它的发展是万维网协会(World Wide Web C ...
- 大话设计模式C++达到-文章12章-外观模式
一.UML画画 关键词:添加Facade层. 二.概念 外观模式:为子系统中的一组接口提供一个一致的界面.此模式定义了一个高层接口,这个接口使得这一子系统更加easy使用. 三.说明 Q:外观模式在什 ...
- HDU 3177 Crixalis's Equipment(贪婪)
主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=3177 Problem Description Crixalis - Sand King used t ...
- Codeforces Round#309 C Kyoya and Colored Balls
给定一个k表示颜色的种类从1到k 然后接下来k行, 每行一个数字, 代表该颜色的球有多少个 这些球都放在一个包中,然后依次拿出. 要求颜色i的最后一个球, 必须要排在颜色i+1的最后一个球前面, ...
- android定位方式
做移动互联网就不太可能不碰手机端的开发.上周为了项目需要,俺也挽袖子抡胳膊开始写起了android程序,还好有java基础,倒也上手快,写了几个小程序,主要都是关于定位方面的. 网上也搜得到一些相关的 ...
- WITH AS
表 id pid name获取 下面所有的子节点
- 站点搭建从零開始(四) server的配置
原文发表在我的个人站点,欢迎大家訪问~转载请保留本段,或注明原文:http://www.hainter.com/website-primer-4 域名解析设置好了,通常我们就能够訪问我们的网站了,上篇 ...
- c++堆栈实现
A Stack is a data-structure that You can only add an element to the top of the Stack, andYou can onl ...
- PHPCMS V9{loop subcat(0,0,0,$siteid) $r}怎么解释?
{loop subcat(0,0,0,$siteid) $r}{/loop} /** * 获取子栏目 * @param $parentid 父级id * @param $type 栏目类型 * ...
- C# 通过豆瓣网络编程API获取图书信息
这篇文章主要是关于如何通过豆瓣API获取信息的书籍,起初,我看到了原来的想法的内容是"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源代码,再通过正則 ...