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.如图所看到的:

版权声明:本文博主原创文章。博客,未经同意不得转载。

时间: 2024-12-23 04:07:10

c#-RTF文本编辑器的相关文章

轻量级文本编辑器,Notepad最佳替代品:Notepad++

[crifan推荐]轻量级文本编辑器,Notepad最佳替代品:Notepad++ 版本:v3.0 Crifan Li 摘要 本文主要介绍了笔者crifan推荐的轻量级文本编辑器,Notepad最佳替代品:Notepad++,内容主要包含notepad,notepad2,notepad++,ultraEdit的比较,使用Notepad++前要了解的知识,Notepad++的插件,Notepad++的安装过程,Notepad++的各种常见和不常见的功能的详解 本文提供多种格式供: 在线阅读 HTM

Vim 和 Emacs 文本编辑器:你更喜欢哪个?

关于Linux的学习,请参考书籍<Linux就该这么学> 这可能是2016年,在许多开发人员和系统管理员之间,编辑器战争中仍然活得很好的. VIM(vi)或Emacs:两者都有很强的功能,当然,很多人使用别的文本编辑器,你喜欢哪个? 毫无疑问,这两个还是有很强的追随者:当我们被问及最喜欢的文本编辑器,自从去年vi出世,但很显然,辩论仍然很激烈. 哪个最适合你,可能很大取决于个人的喜好.你可能已经内置插件满足您的需求,也许在你开发的同时产生了一些强烈的感情. 因此,让我们知道你喜欢哪种文本编辑器

TinyMCE(富文本编辑器)

[转]TinyMCE(富文本编辑器)在Asp.Net中的使用方法 官网演示以及示例代码:https://www.tinymce.com/docs/demo/image-tools/ 转自:http://www.cnblogs.com/hahacjh/archive/2010/07/24/1784268.html TinyMCE 在Asp.Net中的使用方法其实挺简单的,从官方网站下载TinyMCE),然后将里面的jscripts目录拷到你的网站目录 假设你的aspx页面中某一个地方需要用到编辑器

[Linux学习笔记] Linux文本编辑器Vim/Vi

文本编辑器Vim: Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器. 它的作用是建立.编辑.显示文本文件. Vim/Vi没有菜单,只有命令. 插入命令 命令 作用 a 在光标后附加文本 A 在本行行末附加文本 i 在光标前插入文本 I 在本行开始插入文本 o 在光标下插入新行 O 在光标上插入新行 定位命令 命令 作用 h 方向左键. 左移一个字符 j 方向下键. 下移一行 k 方向上键. 上移一行 l 方向右键. 右移一个字符 $ 移至行尾 0 移至行

Android富文本编辑器RichEditor的使用

以前有个项目做一个笔记本类似的东西,觉得写的不太好,最近重新写,就发现了这个富文本编辑器他的效果是这样的 感觉有点厉害啊 废话不多说开始撸码 1先添加依赖 dependencies { compile 'jp.wasabeef:richeditor-android:1.2.0' } 2写布局 <jp.wasabeef.richeditor.RichEditor android:id="@+id/editor" android:layout_width="match_pa

商城项目整理(四)JDBC+富文本编辑器实现商品增加,样式设置,和修改

UEditor富文本编辑器:http://ueditor.baidu.com/website/ 相应页面展示: 商品添加: 商品修改: 前台商品展示: 商品表建表语句: 1 create table TEST.GOODS_TABLE 2 ( 3 gid NUMBER not null, 4 gname VARCHAR2(90), 5 gdetails CLOB, 6 gpicture VARCHAR2(100), 7 gprice NUMBER, 8 gleixing NUMBER, 9 gpi

微信公众平台二 文本编辑器与表单工具

一.排版 微信公众号,尤其是订阅号是一个自媒体平台,所以发布的内容经过精心的排版是很重要的.然而微信自带的文本编辑器,能够提供的效果有限(虽然能够支持很多种效果,但没有可视化的模板).我选择了一款第三方微信文本编辑器——秀米.网址为xiumi.us.注册登录后,图文排版—>添加新的图文,进入到如下界面: 其中,系统模板功能十分好用,只需要把合适的组件拖入右侧的编辑区,放在合适的位置上,然后在模板内进行编辑,因为组件多样化,所以排版更加灵活易定制.多试试吧!相信你很快就能熟练,下面展示我编辑的一篇

php如何引入百度Ueditor富文本编辑器

文本编辑器插件内容丰富,比起传统的textarea标签输入要好用很多,看看如何在页面实现引入吧 1.下载适合的资源包(可以去官网下载适合的版本),我是php引入 2.下载后解压放到一个位置.(我用的是TP框架,所以我放在了我的指定公共文件夹Pbulic下) 3.在页面中引入 首先在head标签里写引入资源包的路径,路径要写自己存放资源包的路径 <script type="text/javascript" src="__PUBLIC__/ueditor/ueditor.c

简单文本编辑器制作

对于文本编辑器,最关键的知识点,就是 插入符号 的操作了... windows中有5个基本的插入符号函数: CreateCaret:创建和窗口关联的插入符号 SetCaretPos:设置窗口内的插入符号的位置 ShowCaret:显示插入符号 HideCaret:隐藏插入符号 DestroyCaret:销毁插入符号 对于插入符号的相关函数: GetCaretPos:获得当前插入符号位置的函数 GetCaretBlinkTime SetCaretBlinkTime获得和设置插入符号闪烁的时间函数