在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例常用C#方法 → C#多行文本框编辑器(可保存成word文档)

C#多行文本框编辑器(可保存成word文档)

常用C#方法

下载此实例
  • 开发语言:C#
  • 实例大小:49.17M
  • 下载次数:72
  • 浏览次数:490
  • 发布时间:2019-06-24
  • 实例类别:常用C#方法
  • 发 布 人:2872456100
  • 文件格式:.zip
  • 所需积分:10
 相关标签: 编辑器 C# c 文本框 编辑

实例介绍

【实例简介】可在编辑中右击显示居中保存等等

【实例截图】

from clipboard

【核心代码】


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using static Kuade.WindowsFormsApp1.form2;

namespace Kuade.WindowsFormsApp1
{
    /// <summary>
    /// 
    /// </summary>
    public partial class FrmMainForm : XtraForm
    {
        //用来纪录文档的数目,虽然 this.MdiChildren.Length
        //这个属性也可以指向,但是效果不理想
        private int docCount = 1;

        //判断保存是否打开的文件路径
        private string filePath;
        private string fileType;
        /// <summary>
        /// 构造函数
        /// </summary>
        public FrmMainForm()
        {
            InitializeComponent();
        }
        //定义handler委托类型
        public delegate void SearchEventHandle(object sender, SearchEventArgsClass e);
        public delegate void ReplaceEventHandle(object sender, ReplaceEventArgClass e);

        //定义查找事件
        public event SearchEventHandle SearchEvent;
        //定义替换事件
        public event ReplaceEventHandle ReplaceEvent;
        //查找执行函数
        //private void MySearch(object sender, SearchEventArgsClass e)
        //{
        //    string strToSearch = e.SearchString; //查找的字符串
        //    //如果查找字符串为空,则不反应
        //    if (strToSearch.Length == 0)
        //        return;
        //    int start = richTextBox1.SelectionStart;//查找起始位置
        //    //调用richtextbox的find方法进行查询,区分大小写
        //    start = richTextBox1.Find(strToSearch, start, RichTextBoxFinds.MatchCase);
        //    //查询到尾部,结束查询,弹出对话框
        //    if (start == -1)
        //    {
        //        MessageBox.Show("已查找到文档的结尾", "查找结束对话框");
        //        start = 0;
        //    }
        //    else
        //    {
        //        start = start   strToSearch.Length;//查找下一处,从该位置开始查询
        //                                           //选中查询到的字符串
        //        richTextBox1.Select();
        //        richTextBox1.Focus();
        //    }
        //}

        //替换执行函数: 

        //private void MyReplace(object sender, ReplaceEventArgClass e)
        //{

        //    string strToSearch = e.SearchString; //要替换的字符串

        //    string strToReplace = e.ReplaceString; //新的字符串

        //    //如果要替换的字符串或者新的字符串为空,则无反应
        //    if (strToReplace.Length == 0 || richTextBox1.SelectionLength == 0) return;

        //    //将选中的字符串替换成新的字符串
        //    richTextBox1.SelectedText = e.ReplaceString;
        //    int start = richTextBox1.SelectionStart;
        //    start = richTextBox1.Find(strToSearch, start, RichTextBoxFinds.MatchCase);

        //    if (start == -1)

        //    {

        //        MessageBox.Show("已查找到文档的结尾", "查找结束对话框");

        //        start = 0;

        //    }

        //    else
        //    {
        //        start = start   strToSearch.Length;
        //        richTextBox1.Select();
        //        richTextBox1.Focus();

        //    }



        //}
        private void FrmMainForm_Load(object sender, EventArgs e)
        {
            richTextBox1.Font = new Font("宋体", richTextBox1.Font.Size, richTextBox1.Font.Style);
        }
        /// <summary>
        /// 斜体
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem5_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Italic);
            //Font oldFont = richTextBox1.SelectionFont;
            //Font newFont;
            //if (oldFont.Italic)
            //{
            //    newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Italic);
            //}
            //else
            //{
            //    newFont = new Font(oldFont, oldFont.Style | FontStyle.Italic);
            //}
            //richTextBox1.SelectionFont = newFont;
            //richTextBox1.Focus();

        }

        private void barButtonItem4_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            //richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Bold);
            BTNType btnType;
            if (Enum.TryParse<BTNType>(barButtonItem4.Tag.ToString(), out btnType))
            {
                if (btnType == BTNType.Search)
                {
                    if (!string.IsNullOrEmpty(this.richTextBox1.Text.Trim()))
                    {
                        this.richTextBox1.Tag = this.richTextBox1.Text.Trim();
                    }
                    else
                    {
                        return;
                    }

                }
                IRichFormat richFomat = RichFormatFactory.CreateRichFormat(btnType);
                richFomat.SetFormat(this.richTextBox1);
            }
        }
        /// <summary>
        /// 下划线
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Underline);
        }

        /// <summary>
        /// 左对齐
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem8_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
        }
        /// <summary>
        /// 居中对齐
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem10_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
        }
        /// <summary>
        /// 右对齐
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem9_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.richTextBox1.SelectionAlignment = HorizontalAlignment.Right;
        }

        private void barButtonItem11_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (fontDialog1.ShowDialog() == DialogResult.OK)
                richTextBox1.SelectionFont = fontDialog1.Font;
        }

        private void barButtonItem12_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
                richTextBox1.SelectionColor = colorDialog1.Color;
        }
        /// <summary>
        /// 撤销
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Undo();
        }

        private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {


        }
        /// <summary>
        /// 粘贴
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem14_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Paste();
        }
        /// <summary>
        /// 复制
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem13_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Copy();
        }


        /// <summary>
        /// 剪切
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem16_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Cut();
        }
        private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.InitialDirectory = "d:\\";
            saveFileDialog1.Filter = "ext files (*.RTF)|*.RTF|*.docx|All files(*.*)|*>**";
            saveFileDialog1.FilterIndex = 2;
            saveFileDialog1.RestoreDirectory = true;
            DialogResult dr = saveFileDialog1.ShowDialog();
            if (dr == DialogResult.OK && saveFileDialog1.FileName.Length > 0)
            {
                richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
                MessageBox.Show("存储文件成功!", "保存文件");
            }
        }

        /// <summary>
        /// 打开文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barLargeButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

        }

        private void barLargeButtonItem4_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

        }
        //查找执行函数
        private void MySearch(object sender, SearchEventArgsClass e)
        {
            this.Activate();

            string strToSearch = e.SearchString; //查找的字符串
            //如果查找字符串为空,则不反应
            if (strToSearch.Length == 0)
                return;
            int start = richTextBox1.SelectionStart  1 ;//查找起始位置
            //调用richtextbox的find方法进行查询,区分大小写
            start = richTextBox1.Find(strToSearch, start, -1, RichTextBoxFinds.MatchCase);

            //查询到尾部,结束查询,弹出对话框
            if (start == -1)
            {
                MessageBox.Show("已查找到文档的结尾", "查找结束对话框");
                start = 0;
            }
            else

            {
                start = start   strToSearch.Trim().Length;//查找下一处,从该位置开始查询
                //选中查询到的字符串
                richTextBox1.Select();
                richTextBox1.Focus();
            }
        }

        //替换执行函数: 

        private void MyReplace(object sender, ReplaceEventArgClass e)
        {

            string strToSearch = e.SearchString; //要替换的字符串

            string strToReplace = e.ReplaceString; //新的字符串

            //如果要替换的字符串或者新的字符串为空,则无反应
            if (strToReplace.Length == 0 || richTextBox1.SelectionLength == 0) return;

            //将选中的字符串替换成新的字符串
            richTextBox1.SelectedText = e.ReplaceString;
            int start = richTextBox1.SelectionStart;
            start = richTextBox1.Find(strToSearch, start, RichTextBoxFinds.MatchCase);

            if (start == -1)

            {

                MessageBox.Show("已查找到文档的结尾", "查找结束对话框");

                start = 0;

            }

            else
            {
                start = start   strToSearch.Length;
                richTextBox1.Select();
                richTextBox1.Focus();

            }



        }
        /// <summary>
        /// 删除线
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem17_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Strikeout);
        }
        /// <summary>
        /// 缩进对齐 10
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem18_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionIndent = richTextBox1.SelectionIndent   10;
            richTextBox1.Focus();
        }
        /// <summary>
        /// 缩进对齐-10
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem19_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionIndent = richTextBox1.SelectionIndent - 10;
            richTextBox1.Focus();
        }
        /// <summary>
        /// 上标
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem20_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (richTextBox1.SelectionCharOffset > 0)
            {
                richTextBox1.SelectionCharOffset = 0;
            }
            else
            {
                richTextBox1.SelectionCharOffset = 5;
            }
            richTextBox1.Focus();
        }

        private void barButtonItem21_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            ColorDialog f = new ColorDialog();
            if (f.ShowDialog() == DialogResult.OK)
            {

                richTextBox1.SelectionBackColor = f.Color;
            }
            richTextBox1.Focus();
        }
        /// <summary>
        /// UL列表,项目符号样式
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem22_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (richTextBox1.SelectionBullet)
            {
                richTextBox1.SelectionBullet = false;
            }
            else
            {
                richTextBox1.SelectionBullet = true;
                richTextBox1.BulletIndent = 10;
            }
            richTextBox1.Focus();
        }

        private void barButtonItem23_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            OpenFileDialog o = new OpenFileDialog();
            o.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;
            o.Title = "请选择图片";
            o.Filter = "jpeg|*.jpeg|jpg|*.jpg|png|*.png|gif|*.gif";
            if (o.ShowDialog() == DialogResult.OK)
            {
                string fileName = o.FileName;
                try
                {
                    Image bmp = Image.FromFile(fileName);
                    Clipboard.SetDataObject(bmp);
                    DataFormats.Format dataFormat = DataFormats.GetFormat(DataFormats.Bitmap);
                    if (richTextBox1.CanPaste(dataFormat))
                    {
                        richTextBox1.Paste(dataFormat);
                    }
                }
                catch (Exception exc)
                {
                    MessageBox.Show("图片插入失败。"   exc.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            richTextBox1.Focus();
        }

        private void barButtonItem24_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectedText = "";
            richTextBox1.Focus();
        }

        private void BarButtonItem25_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            openFileDialog1.Filter = "文本文件|*.txt;*.html;*.rtf|所有文件|*.*";//文件打开的过滤器;*.docx;*.doc;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                var title = openFileDialog1.FileName;
                this.Text = title; //显示打开的文件名
                richTextBox1.Modified = false;
                string ext = title.Substring(title.LastIndexOf(".")   1); //获取文件格式;
                ext = ext.ToLower(); //转换成小写
                System.IO.FileStream fs = new System.IO.FileStream(title, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                System.IO.StreamReader sr = new System.IO.StreamReader(fs, Encoding.Default);//以UTF-8格式进行读取文件
                filePath = title;
                if (ext == "txt") //加载rtf文件
                {
                    richTextBox1.Text = sr.ReadToEnd();//读取文件流从当前位置到结尾的所有字符
                }
                else
                {
                    richTextBox1.LoadFile(title, RichTextBoxStreamType.RichText);
                }
                fs.Close();
                sr.Close();
            }
            //if (openFileDialog1.ShowDialog() == DialogResult.OK)
            //{
            //    filePath = openFileDialog1.FileName;

            //    fileType = filePath.Substring(filePath.LastIndexOf('.')   1);

            //    //获取本地文件名称
            //    string fileName = filePath.Substring(filePath.LastIndexOf('\\')   1, filePath.LastIndexOf('.') - filePath.LastIndexOf('\\') - 1);

            //    //当不是打开这两种类型时自动抛出异常
            //    try
            //    {
            //        if (fileType == "txt")
            //        {
            //            DocForm df = new DocForm(filePath);
            //            df.MdiParent = this;

            //            df.rtbContent.LoadFile(filePath, RichTextBoxStreamType.PlainText);
            //            df.Text = fileName;
            //            df.Show();
            //        }
            //        if (fileType == "rtf")
            //        {
            //            DocForm df = new DocForm(filePath);
            //            df.MdiParent = this;
            //            df.Text = fileName;
            //            df.rtbContent.LoadFile(filePath, RichTextBoxStreamType.RichText);
            //            df.Show();
            //        }
            //    }
            //    catch (Exception ex)
            //    {
            //        MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            //        return;

            //    }
            //}
        }

            private void BarButtonItem26_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.InitialDirectory = "d:\\";
            saveFileDialog1.Filter = "ext files (*.RTF)|*.RTF|*.docx|All files(*.*)|*>**";
            saveFileDialog1.FilterIndex = 2;
            saveFileDialog1.RestoreDirectory = true;
            DialogResult dr = saveFileDialog1.ShowDialog();
            if (dr == DialogResult.OK && saveFileDialog1.FileName.Length > 0)
            {
                richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
                MessageBox.Show("存储文件成功!", "保存文件");
            }
        }

        private void BarButtonItem29_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            form2 SR = new form2(this);

            SR.Show();//打开非模式对话框
            //创建委托实例,并使用委托的多播使得每一次查找下一处不需要重头开始
            SR.SearchEvent  = new form2.SearchEventHandle(MySearch); //订阅查找事件
            SR.ReplaceEvent  = new form2.ReplaceEventHandle(MyReplace);//订阅替换事件
        }

        private void BarButtonItem30_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            OpenFileDialog o = new OpenFileDialog();
            o.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;
            o.Title = "请选择图片";
            o.Filter = "jpeg|*.jpeg|jpg|*.jpg|png|*.png|gif|*.gif";
            if (o.ShowDialog() == DialogResult.OK)
            {
                string fileName = o.FileName;
                try
                {
                    Image bmp = Image.FromFile(fileName);
                    Clipboard.SetDataObject(bmp);
                    DataFormats.Format dataFormat = DataFormats.GetFormat(DataFormats.Bitmap);
                    if (richTextBox1.CanPaste(dataFormat))
                    {
                        richTextBox1.Paste(dataFormat);
                    }
                }
                catch (Exception exc)
                {
                    MessageBox.Show("图片插入失败。"   exc.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            richTextBox1.Focus();
        }

        private void BarButtonItem31_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            //richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Bold);
            BTNType btnType;
            if (Enum.TryParse<BTNType>(barButtonItem4.Tag.ToString(), out btnType))
            {
                if (btnType == BTNType.Search)
                {
                    if (!string.IsNullOrEmpty(this.richTextBox1.Text.Trim()))
                    {
                        this.richTextBox1.Tag = this.richTextBox1.Text.Trim();
                    }
                    else
                    {
                        return;
                    }

                }
                IRichFormat richFomat = RichFormatFactory.CreateRichFormat(btnType);
                richFomat.SetFormat(this.richTextBox1);
            }
        }

        private void BarButtonItem32_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Italic);
        }

        private void BarButtonItem33_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Underline);
        }

        private void BarButtonItem37_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
        }

        private void BarButtonItem38_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
        }

        private void BarButtonItem39_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.richTextBox1.SelectionAlignment = HorizontalAlignment.Right;
        }

        private void 期间颜色ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
                richTextBox1.SelectionColor = colorDialog1.Color;
        }

        private void RichTextBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Copy();
        }

        private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Paste();
        }

        private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Cut();
        }

        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectedText = "";
            richTextBox1.Focus();
        }

        private void 背景颜色ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ColorDialog f = new ColorDialog();
            if (f.ShowDialog() == DialogResult.OK)
            {

                richTextBox1.SelectionBackColor = f.Color;
            }
            richTextBox1.Focus();
        }

        private void 插入图片ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog o = new OpenFileDialog();
            o.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;
            o.Title = "请选择图片";
            o.Filter = "jpeg|*.jpeg|jpg|*.jpg|png|*.png|gif|*.gif";
            if (o.ShowDialog() == DialogResult.OK)
            {
                string fileName = o.FileName;
                try
                {
                    Image bmp = Image.FromFile(fileName);
                    Clipboard.SetDataObject(bmp);
                    DataFormats.Format dataFormat = DataFormats.GetFormat(DataFormats.Bitmap);
                    if (richTextBox1.CanPaste(dataFormat))
                    {
                        richTextBox1.Paste(dataFormat);
                    }
                }
                catch (Exception exc)
                {
                    MessageBox.Show("图片插入失败。"   exc.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            richTextBox1.Focus();
        }



        private void BarButtonItem40_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

            openFileDialog1.Filter = "文本文件|*.txt;*.html;*.rtf|所有文件|*.*";//文件打开的过滤器;*.docx;*.doc;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                var title = openFileDialog1.FileName;
                this.Text = title; //显示打开的文件名
                richTextBox1.Modified = false;
                string ext = title.Substring(title.LastIndexOf(".")   1); //获取文件格式;
                ext = ext.ToLower(); //转换成小写
                System.IO.FileStream fs = new System.IO.FileStream(title, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                System.IO.StreamReader sr = new System.IO.StreamReader(fs, Encoding.Default);//以UTF-8格式进行读取文件
                filePath = title;
                if (ext == "txt") //加载rtf文件
                {
                    richTextBox1.Text = sr.ReadToEnd();//读取文件流从当前位置到结尾的所有字符
                }
                else
                {
                    richTextBox1.LoadFile(title, RichTextBoxStreamType.RichText);
                }
                fs.Close();
                sr.Close();
            }

        }

        private void BarButtonItem41_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (filePath == null || filePath == "")
            {

                SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                saveFileDialog1.InitialDirectory = "d:\\";
                saveFileDialog1.Filter = "ext files (*.RTF)|*.RTF|*.docx|*.doc|All files(*.*)|*>**";
                saveFileDialog1.FilterIndex = 2;
                saveFileDialog1.RestoreDirectory = true;
                DialogResult dr = saveFileDialog1.ShowDialog();
                if (dr == DialogResult.OK && saveFileDialog1.FileName.Length > 0)
                {
                    richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
                    MessageBox.Show("存储文件成功!", "保存文件");
                }
            }
            else
            {
                richTextBox1.SaveFile(filePath, RichTextBoxStreamType.RichText);
                MessageBox.Show("存储文件成功!", "保存文件");
            }
        }

        private void BarButtonItem42_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Cut();
        }

        private void BarButtonItem43_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Copy();
        }

        private void BarButtonItem44_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Paste();
        }

        private void 头点符号ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (richTextBox1.SelectionBullet)
            {
                richTextBox1.SelectionBullet = false;
            }
            else
            {
                richTextBox1.SelectionBullet = true;
                richTextBox1.BulletIndent = 10;
            }
            richTextBox1.Focus();
        }

        private void 字体ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (fontDialog1.ShowDialog() == DialogResult.OK)
                richTextBox1.SelectionFont = fontDialog1.Font;
        }

        private void BarButtonItem52_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Undo();
        }

        private void BarButtonItem49_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            //richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Bold);
            BTNType btnType;
            if (Enum.TryParse<BTNType>(barButtonItem4.Tag.ToString(), out btnType))
            {
                if (btnType == BTNType.Search)
                {
                    if (!string.IsNullOrEmpty(this.richTextBox1.Text.Trim()))
                    {
                        this.richTextBox1.Tag = this.richTextBox1.Text.Trim();
                    }
                    else
                    {
                        return;
                    }

                }
                IRichFormat richFomat = RichFormatFactory.CreateRichFormat(btnType);
                richFomat.SetFormat(this.richTextBox1);
            }
        }

        private void BarButtonItem50_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Italic);
        }

        private void BarButtonItem51_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Underline);
        }

        private void BarButtonItem53_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Redo();
        }

        private void BarButtonItem45_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
        }

        private void BarButtonItem46_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
        }

        private void BarButtonItem47_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.richTextBox1.SelectionAlignment = HorizontalAlignment.Right;
        }

        private void 删除线条ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Strikeout);
        }

        private void BarButtonItem54_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Undo();
        }

        private void BarButtonItem55_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.Redo();
        }

        private void BarButtonItem56_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (richTextBox1.SelectionCharOffset > 0)
            {
                richTextBox1.SelectionCharOffset = 0;
            }
            else
            {
                richTextBox1.SelectionCharOffset = 5;
            }
            richTextBox1.Focus();
        }

        private void BarButtonItem57_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (richTextBox1.SelectionCharOffset > 0)
            {
                richTextBox1.SelectionCharOffset = 0;
            }
            else
            {
                richTextBox1.SelectionCharOffset = -5;
            }
            richTextBox1.Focus();
        }

        private void 缩进对齐ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectionIndent = richTextBox1.SelectionIndent   10;
            richTextBox1.Focus();
        }

        private void 缩进对齐ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectionIndent = richTextBox1.SelectionIndent - 10;
            richTextBox1.Focus();
        }

        private void BarButtonItem59_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBoxPrintClass r = new richTextBoxPrintClass();
            r.richTextBox = richTextBox1;
            r.ShowPrintDlg();
        }

        private void BarButtonItem60_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBoxPrintClass r = new richTextBoxPrintClass();
            r.richTextBox = richTextBox1;
            r.ShowShowPagePriviewDlg();
        }

        private void BarEditItem7_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

            //if (combFontSize.SelectedItem > -1)    richTextBox1.Font = new Font(combFontSize.Font.FontFamily,12, combFontSize.Font.Style);
            //float fsize = 12.0f;
            //{
            //    if (float.TryParse(combFontSize.EditValue.ToString(), out fsize))
            //    {
            //        richTextBox1.Tag = fsize.ToString();
            //        IRichFormat richFomat = RichFormatFactory.CreateRichFormat(BTNType.FontSize);
            //        richFomat.SetFormat(this.richTextBox1);
            //    }
            //    return;
            //}
        }

        private void BarButtonItem62_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBoxPrintClass r = new richTextBoxPrintClass();
            r.richTextBox = richTextBox1;
            r.ShowShowPagePriviewDlg();
        }

        private void BarButtonItem63_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBoxPrintClass r = new richTextBoxPrintClass();
            r.richTextBox = richTextBox1;
            r.ShowPrintDlg();
        }

        private void BarButtonItem64_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionIndent = richTextBox1.SelectionIndent   10;
            richTextBox1.Focus();
        }

        private void BarButtonItem67_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionIndent = richTextBox1.SelectionIndent - 10;
            richTextBox1.Focus();
        }

        private void BarButtonItem68_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (fontDialog1.ShowDialog() == DialogResult.OK)
                richTextBox1.SelectionFont = fontDialog1.Font;
        }

        private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            float fsize = 12.0f;
            if (comboBox1.SelectedIndex > -1)
            {
                if (float.TryParse(comboBox1.SelectedItem.ToString(), out fsize))
                {
                    richTextBox1.Tag = fsize.ToString();
                    IRichFormat richFomat = RichFormatFactory.CreateRichFormat(BTNType.FontSize);
                    richFomat.SetFormat(this.richTextBox1);
                }
                return;
            }
        }

        private void BarButtonItem48_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

        }

        private void BtnSearch_Click(object sender, EventArgs e)
        {
            //Button btn = (Button)sender;
            //BTNType btnType;
            //if (Enum.TryParse<BTNType>(btn.Tag.ToString(), out btnType))
            //{
            //    if (btnType == BTNType.Search)
            //    {
            //        if (!string.IsNullOrEmpty(this.txtSearch.Text.Trim()))
            //        {
            //            this.richTextBox1.Tag = this.txtSearch.Text.Trim();
            //        }
            //        else
            //        {
            //            return;
            //        }

            //    }
            //    IRichFormat richFomat = RichFormatFactory.CreateRichFormat(btnType);
            //    richFomat.SetFormat(this.richTextBox1);
            //}
        }
        private int startPos = 0;
        private void TbbtnQuery_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (tstxtQuery.EditValue != null && Convert.ToString(tstxtQuery.EditValue) != "")
            {
                this.startPos = richTextBox1.Find(tstxtQuery.EditValue.ToString(), richTextBox1.SelectionStart   1, -1, RichTextBoxFinds.None);
                if (startPos >= 0)
                {
                    startPos  = tstxtQuery.EditValue.ToString().Trim().Length;
                }
                else
                {
                    MessageBox.Show("已经搜索到了文档末尾了");
                    startPos = 0;
                }
            }
        }
    

        private void BarButtonItem70_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.InitialDirectory = "d:\\";
            saveFileDialog1.Filter = "ext files (*.RTF)|*.RTF|*.docx|*.doc|All files(*.*)|*>**";
            saveFileDialog1.FilterIndex = 2;
            saveFileDialog1.RestoreDirectory = true;
            DialogResult dr = saveFileDialog1.ShowDialog();
            if (dr == DialogResult.OK && saveFileDialog1.FileName.Length > 0)
            {
                richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
                MessageBox.Show("存储文件成功!", "保存文件");
            }

        }

        private void BarButtonItem35_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (fontDialog1.ShowDialog() == DialogResult.OK)
                richTextBox1.SelectionFont = fontDialog1.Font;
        }

        private void BarButtonItem58_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Strikeout);
        }

        private void FrmMainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("您将退出系统,是否继续?", "系统提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                e.Cancel = false;
            }
            else
            {
                e.Cancel = true;
            }
        }

        private void BarButtonItem27_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            //Environment.Exit(0);//程序结束的很干净
            Application.Exit();
        }
    }
    
}


实例下载地址

C#多行文本框编辑器(可保存成word文档)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警