文本编辑器.doc

上传人:豆**** 文档编号:17231580 上传时间:2022-05-22 格式:DOC 页数:34 大小:481KB
返回 下载 相关 举报
文本编辑器.doc_第1页
第1页 / 共34页
文本编辑器.doc_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《文本编辑器.doc》由会员分享,可在线阅读,更多相关《文本编辑器.doc(34页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流文本编辑器.精品文档. 毕 业 设 计 任 务 书专业 年级 班级 姓名 学号 毕业设计指导须知一、毕业设计是高职教学过程中一个十分重要的环节。是锻炼学生运用所学知识正确分析和解决实际问题的一个重要方面,也是高职培养应用型专门人才的要求。二、指导教师应为具有讲师以上或相应职称的有关专业人员,经系审查同意后,才能指导学生的毕业设计。三、学生应以严肃认真,实事求是的态度完成设计。要独立思考,自己动手,不得抄袭或找人代笔。四、毕业设计选题要符合专业培养目标的要求。论文(任务书)写作要做到论点明确、论据充分,论理透彻,语言准确恰当,书面整洁、字迹工整

2、,图纸应清晰、工整,符合设计要求,符合国家有关标准和部颁标准。字数、图纸数量符合有关要求。并在规定的时间内完成。五、答辩过程中学生要严认真,文明礼貌,谦虚谨慎,认真回答答辩主持人,委员等提出的问题。六、填报有关表格时,应按项目要求逐项填实、填全、填清。学号姓名学 制专业年级教学班负责人班级指导教师姓名职务或职称设 计 题 目文本编译器指导教师评语:成绩: 指导教师签名: 年 月 日系复审意见:成绩: 复审人签名: 职称: 公章 年 月 日答 辩 情 况 记 录答 辩 题 目答 辩 情 况正确基本正确经提示回 答不正确未回答答辩委员会(或小组)评语:成绩: 主持答辩人签名: 职称: 月 日一、毕

3、业设计的任务和具体要求:u 二、 毕业设计应完成的图纸:字体颜色自动换行替换查找重做撤销删除粘贴剪切全选复制关闭保存新建打开另存为完成项目三、毕业设计(论文)进度计划:起 止 日 期工 作 内 容备 注2014-11-012014-11-082014-11-152014-11-212014-11-282014-12-05查找资料,完成开题查找收集资料初步完成设计过度技术资料查询和学习过度技术的原理和实现综合测试,分析结论撰写毕业论文完成完成完成完成完成完成 目录1 采用技术11.1. visual studio 2010编辑环境11.2.C#的窗体编程12 选题说明23 总体说明33.1程序的

4、基本结构33.2程序的主要技术34 详细说明44.1 界面设计45 遇到的问题和解决方法105.1 未考虑到生成文档窗体在主窗体中的显示105.2 不知到什么属性被修改,导致主窗体关闭失效105.3 未考虑到文档关闭时,文档是否保存106 程序详细设计代码116.1 主窗体结构和属性值116.2 工具栏实现136.3 打开、保存文件的代码实现:146.4 退出时的代码:156.5 编辑栏功能的实现(剪切、复制等)166.6 字体和颜色部分的实现176.7 在状态栏实时显示光标的位置196.8 查找替换页的实现206.9 打印功能实现23参考文献28摘要C#文本编辑器是一个关于文本编辑器的小程序

5、,运用一些简单的记事本的基本操作功能来实现的。该程序利用C#程序编写,在Visual Studio 2010的环境下进行调试运行的,能够对文本进行简单编辑处理,如:剪切、复制等。对于该程序开发,必须达到以下要求:1、熟悉.NET开发环境,能够使用C#语言在.NET平台上独立设计、开发WINDOWS应用程序。 2、掌握C#语言的异常处理技术,能够使用.NET各种调试方法调试代码,掌握帮助的使用方法。 3、掌握常用控件以及控件的常用属性的使用方法。4、界面要做到简洁易懂,具有人性化等特点。5、程序没有在使用过程中不存在任何的问题。 6、通过使用C#编写程序,可以发现能完成任务,能够编写出文本编辑器

6、应有的基础功能。引言文本编辑器是常用的简便工具。本设计完成的功能类似于Windows操作系统的记事本工具,又添加了多文档接口支持,以及更丰富的字体样式控制。利用C#完成文本编辑器的开发,实现以下功能:文档读写:打开文件(包括普通文本文件和富文本文件); 保存文件(包括另存为);文档编辑(包括输入、修改、复制、粘贴、重做、撤销、查找、替换、设置字体样式等);打印及打印页面设置;配置功能,完成状态栏的显示设置和文件的定时自动保存设置; 操作系统和软件开发包往往都提供文本编辑器,用以修改配置文件和程序的源代码。市场上出现的和用户所使用的文本编辑器种类繁多,功能也是各式各样,其中有相当一部分是很优秀的

7、。但是面向底层用户的的操作简单的,界面友好的,集文本操作、编辑操作、格式操作于一体的编辑器并不多见。目前市面上现有的如office中的word还有WPS等大众文本编辑器虽然功能也十分齐全,但是本身往往就是数百兆甚至几个G,占用资源非常大,而且对于电脑本身的性能要求也比较高,甚至有部分专业的文本编辑器需要付费使用。 本次毕业设计所研究的就是编写一个功能完整,占用资源较少的,操作简单适用于大众的文本编辑器。该编辑器要求可以实现新建、保存、打开等基本文件操作,还要求具有复制、粘贴、剪切、撤消等基本文本编辑操作以及字体选择、颜色设置、格式设置等格式操作。同时,该文本编辑器号要求具备丰富的快捷方式和热键

8、,以方便用户进行操作,降低操作难度,提高工作效率。同时,由于文本编辑器要求占用资源少,所以本身需要启动的进程必须较少,以节约系统资源。而满足上述条件的文本编辑器目前市面上尚未出现,因此本次课程设计研究十分具备可行性。1 采用技术1.1. visual studio 2010编辑环境Visual Studio 是微软公司推出的开发环境。是目前最流行的 Windows 平台应用程序开发环境。目前已经开发到 10.0 版。 Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。Vis

9、ual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。1.2.C#的窗体编程Windows 窗体是用于 Microsoft Windows 应用程序开发的

10、、基于 .NET Framework 的新平台。此框架提供一个有条理的、面向对象的、可扩展的类集,使您能够开发功能丰富的 Windows 应用程序。另外,Windows 窗体可作为多层分布式解决方案中的本地用户界面。窗体是一种文档,可以用来收集信息。它包括两部分,一部分是由窗体设计者输入的,填写窗体的人无法更改的文字或图形。窗体设计者可以插入希望得到回答的问题、选项列表、信息表格等。另一部分是由窗体填写者输入的,用于从填写窗体者处收集信息并进行整理的空白区域。窗体设计者可以在文档中插入窗体域或 ActiveX 控件,为窗体填写者提供用于收集数据的位置。2 选题说明随着科技的发展,人们对精神生活

11、要求的越来越高,纸质的手动式的书写方式已经不是能够代表新世纪的生活需要了,所以现在各种不同功能的文本编辑器已经悄悄走进我们的生活和学习中,像简单的就有记事本。 但是一个简单的文本编辑器也是很重要的,是基础。所以在结合自己的一个学期的很认真的学习c#后,决定自己编译一个类似与记事本的,但功能比记事本强大的文本编辑器。3 总体说明3.1程序的基本结构操作界面的主窗口为文本编辑器的主入口,类似于记事本的形式,菜单栏要如下的几项(),另外还有两个简单的toolstripe式的图片按钮,分别是新建和保存。当点击新建的时候,会弹出我们将要编辑的文档文本窗口,这是我们编写文字的地方。书写完毕后,要先确认是否

12、保存此文件夹,这样就不会发生自己所编辑的内容会丢失。3.2程序的主要技术(1) 编写要先新建,编写之后要有保存功能;(2) 还可以设置文字的字体字形和字体的颜色;(3) 实现文字替换与查找功能;(4) 可以进行打印、打印预览;(5)状态栏能够实时反映输入状态;4 详细说明4.1 界面设计打开Visual Studio 2010开发工具,新建一个Windows应用程序,然后在窗体上依次放置1个MenuStrip菜单栏和1个ToolStrip工具栏,如图4-1所示(设置好属性后)。图4-1 编辑器用户界面运行程序,新建文档。如图4-2所示。图4-2新建文本文档运行程序,设置字体的大小和粗细,以及字

13、体的颜色。如图4-3所示图4-3 字体大小及颜色单击保存按钮,保存所编辑的文本。结果如图4-4所示。图4-4 保存文本单击文件按钮,能够实现如下的功能,结果如图4-5所示。图4-5 菜单文件的功能单击编辑按钮,功能如下,结果如图4-6所示图4-6 菜单编辑的功能状态栏的功能,结果如图4-7所示:图4-7 状态栏的功能为了确保退出前能够保存文件,减少误操作,在关闭窗口时加入了提示功能,结果如图4-8所示:图4-7 状态栏的功能查找和替换功能的实现,结果如图4-8所示:图4-8 查找和替换功能5 遇到的问题和解决方法5.1 未考虑到生成文档窗体在主窗体中的显示解决办法:在参照样的时候例程序,发现文

14、档是显示在主窗体内部,结合自己的所学,发现设置主窗体的属性记事本()。 f.MdiParent = this; count+; f.Text = 新建文本 + count;设置成Mdiparent属性即可。5.2 不知到什么属性被修改,导致主窗体关闭失效 解决办法:在菜单文件中设置关闭程序的命令,并申请了菜单合并,不需要在新建文档的情况下就能关闭主窗体,现在仍然留下一个让人深究的问题,究竟是什么样的属性才是控制最大化,最小化,以及关闭的显隐性,有待继续学习。这是自己在程序完成的时候出现的意外,但是确是我在编写过程中遇到的最大难题。5.3 未考虑到文档关闭时,文档是否保存解决办法:这是细节问题,

15、其实是很容易做到,当关闭的时候显示一个对话框提示一下即可。6 程序详细设计代码6.1 主窗体结构和属性值控件属性属性值说明FormNamefrmEditorText文本文件编辑器Font宋体,五号MenuStripNamemsEditor菜单条ToolStripMenuItemNamemnFile文件菜单Text文件ToolStripMenuItemNamemiFileNewText新建ToolStripMenuItemNamemiFileOpenText打开ToolStripMenuItemNamemiFileSaveText保存ToolStripMenuItemNamemiFileSave

16、AsText另存为ToolStripMenuItemNamemiFileExitText退出ToolStripMenuItemNamemnEdit编辑菜单Text编辑ToolStripMenuItemNamemiEditCutText剪切ToolStripMenuItemNamemiEditCopyText复制ToolStripMenuItemNamemiEditPasteText粘贴ToolStripMenuItemNamemiEditUnDoText撤消ToolStripMenuItemNamemiEditReDoText恢复ToolStripMenuItemNamemiEditFindT

17、ext查找ToolStripMenuItemNamemiEditReplaceText替换ToolStripMenuItemNamemnStyle格式菜单Text格式ToolStripMenuItemNamemiStyleFontText字体ToolStripMenuItemNamemiStyleColorText颜色ToolStripMenuItemNamemiStyleAlignLeftText左对齐ToolStripMenuItemNamemiStyleAlignCenterText中对齐ToolStripMenuItemNamemiStyleAlignRightText右对齐ToolS

18、tripMenuItemNamemiStyleIndentText缩进ToolStripMenuItemNamemnPrint打印菜单Text打印ToolStripNametsEditor工具条StatusStripNamessEditor状态条RichTextBoxNamertbEditor富格式文本编辑器DockFillOpenFileDialogNamedlgOpen打开文件对话框PrintDocumentNamedocPrint打印文档控件6.2 工具栏实现制作图标:每个按钮做一个图标文件,大小为16*16,参见FileNew.bmp,FileOpen.bmp,FileSave.bmp

19、,EditCut.bmp,EditCopy.bmp,EditPaste.bmp。制作按钮:在工具栏添加按钮并装入每个按钮的图象,图标命名:tsbFileName,tsbFileOpen,tsbFileSave,sbEditCut,tsbEditCopy, tsbEditPaste控件属性属性值说明ToolStripButtonNametsbFileNew新建文件ImageFileNew.bmpimageTransparentColorOliveToolStripButtonNametsbFileOpen打开文件ImageFileOpen.bmpimageTransparentColorOliv

20、eToolStripButtonNametsbFileSave保存文件ImageFileSave.bmpimageTransparentColorOliveToolStripButtonNametsbEditCut剪切ImageEditCut.bmpimageTransparentColorOliveToolStripButtonNametsbEditCopy编辑ImageEditCopy.bmpimageTransparentColorOliveToolStripButtonNametsbEditPaste粘贴ImageEditPaste.bmpimageTransparentColorOl

21、ive设计完成后的效果如下图:6.3 打开、保存文件的代码实现:打开:private void miFileOpen_Click_1(object sender, EventArgs e) dlgOpen.Filter = 文本文件(*.txt)|*.txt|富格式文件 (*.rtf)|*.rtf|所有文件(*.*)|*.*; if (dlgOpen.ShowDialog() = DialogResult.OK) _fileName = dlgOpen.FileName; if (Path.GetExtension(_fileName) = .rtf) rtbEditor.LoadFile(_

22、fileName, RichTextBoxStreamType.RichText); else rtbEditor.LoadFile(_fileName, RichTextBoxStreamType.PlainText);保存(另存为):private void miFileSaveAs_Click(object sender, EventArgs e) / 动态创建一个文件保存对话框 SaveFileDialog dlgSave = new SaveFileDialog(); / 设置保存对话框的默认参数 dlgSave.InitialDirectory = c:tmp; dlgSave.F

23、ilter = 文本文件(*.txt)|*.txt|富格式文件 (*rtf)|*.rtf|所有文件(*.*)|*.*; dlgSave.Title = 保存我的文件; / 显示保存对话框 if (dlgSave.ShowDialog() = DialogResult.OK)/ 表示按下 “确认”按钮 _fileName = dlgSave.FileName; / 如果扩展名为rtf格式,则以RTF格式保存文件,否则 以普通文本格式保存文件 if (Path.GetExtension(_fileName) = .rtf) rtbEditor.SaveFile(_fileName, RichTex

24、tBoxStreamType.RichText); else rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.PlainText);6.4 退出时的代码: private void miFileExit_Click(object sender, EventArgs e) DialogResult result; result = MessageBox.Show(退出前是否保存, 退出, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result = DialogR

25、esult.No) this.Close(); else if (result = DialogResult.Yes) SaveFileDialog dlgSave = new SaveFileDialog(); / 设置保存对话框的默认参数 dlgSave.InitialDirectory = c:tmp; dlgSave.Filter = 文本文件(*.txt)|*.txt| (*rtf)|*.rtf|所有文件(*.*)|*.*; dlgSave.Title = 保存我的文件; / 显示保存对话框 if (dlgSave.ShowDialog() = DialogResult.OK) /

26、表示按下“确认”按钮 _fileName = dlgSave.FileName; / 得到用户指 定的文件名 / 如果扩展名为rtf格式,则以RTF格式保存文件, 否则以普通文本格式保存文件 if (Path.GetExtension(_fileName) = .rtf) rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.RichText); else rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.PlainText);6.5 编辑栏功能的实现(剪切、复制等)private void

27、 miEditCut_Click(object sender, EventArgs e) rtbEditor.Cut(); private void miEditCopy_Click(object sender, EventArgs e) rtbEditor.Copy(); private void miEditPaste_Click(object sender, EventArgs e) rtbEditor.Paste(); private void miEditReDo_Click(object sender, EventArgs e) rtbEditor.Redo(); private

28、void miEditUnDo_Click(object sender, EventArgs e) rtbEditor.Undo();6.6 字体和颜色部分的实现private void miStyleFont_Click(object sender, EventArgs e) / 创建字体对话框 FontDialog dlgFont = new FontDialog(); dlgFont.ShowColor = true; dlgFont.ShowApply = true; / 设置字体对框的默认字体, / 如果已经有选择文本,则设置为选择文本的字体和颜色 / 否则设置为全文的字体和姿色 i

29、f (rtbEditor.SelectionLength 0) dlgFont.Font = rtbEditor.SelectionFont; dlgFont.Color = rtbEditor.SelectionColor; else dlgFont.Font = rtbEditor.Font; dlgFont.Color = rtbEditor.ForeColor; / 显示字体对话框,且用户按下了“确认”按钮 if (dlgFont.ShowDialog() = DialogResult.OK) / 如果有选择文件,刚修改选择文本的字体和颜色 if (rtbEditor.Selectio

30、nLength 0) rtbEditor.SelectionFont = dlgFont.Font; rtbEditor.SelectionColor = dlgFont.Color; / 否则修改整个文本的字体和颜色 else rtbEditor.Font = dlgFont.Font; rtbEditor.ForeColor = dlgFont.Color;private void miStyleColor_Click(object sender, EventArgs e) ColorDialog dlgColor = new ColorDialog(); if (dlgColor.Sho

31、wDialog() = DialogResult.OK) if (rtbEditor.SelectionLength 0) rtbEditor.SelectionColor = dlgColor.Color; else rtbEditor.ForeColor = dlgColor.Color;6.7 在状态栏实时显示光标的位置响应文本编辑器rtbEditor的MouseDown消息,得到光标的位置,进而得到光标的行号和列号。响应文本编辑器rtbEditor的KeyUp消息,得到光标的位置,进而得到光标的行号和列号。 private void rtbEditor_MouseDown(object

32、 sender, MouseEventArgs e) / 根据光标所在象素位置,得到字符索引号 int nCharIndex = rtbEditor.GetCharIndexFromPosition(new Point(e.X, e.Y); / 根据字符索引号,得到所在行号和列号 int nRowNo = rtbEditor.GetLineFromCharIndex(nCharIndex); int nFirstCharIndex = rtbEditor.GetFirstCharIndexFromLine(nRowNo); int nColNo = nCharIndex - nFirstCha

33、rIndex; / 在状态栏上显示行号和列号 tsslRowNo.Text = string.Format(行:0, nRowNo + 1); tsslColNo.Text = string.Format(列:0, nColNo); private void rtbEditor_KeyUp(object sender, KeyEventArgs e) / 根据光标所在位置,得到字符索引号 int nCharIndex = rtbEditor.SelectionStart; / 根据字符索引号,得到所在行号和列号 int nRowNo = rtbEditor.GetLineFromCharInd

34、ex(nCharIndex); int nFirstCharIndex = rtbEditor.GetFirstCharIndexFromLine(nRowNo); int nColNo = nCharIndex - nFirstCharIndex; / 在状态栏上显示行号和列号 tsslRowNo.Text = string.Format(行:0, nRowNo + 1); tsslColNo.Text = string.Format(列:0, nColNo);6.8 查找替换页的实现添加一个新的窗体文件控件属性属性值说明FormNamefrmFindAndReplace查找与替换Text查

35、找和替换Font宋体,五号TopMostTrue总显示在最上面TabControlNametabControl1卡片控制TabPageNametabFind卡片页:查找Text查找TabPageNametabReplace卡片页:替换Text替换TextBoxNametxtFindFind查找页:查找文本CheckBoxNamecbFindWholeWord查找页:全字匹配Text全字匹配CheckBoxNamecbFindMatchCase查找页:区分大小写Text区分大小写ButtonNamebtnFindFindNext查找页:查找下一个Text查找下一个ButtonNamebtnFin

36、dCancel查找页:取消Text取消TextBoxNametxtReplaceFind替换页:查找文本TextBoxNametxtReplaceReplace替换页:替换文本CheckBoxNamecbReplaceWholeWord替换页:全字匹配Text全字匹配CheckBoxNamecbReplaceMatchCase替换页:区分大小写Text区分大小写ButtonNamebtnReplaceFindNext查找页:查找下一个Text查找下一个ButtonNamebtnReplaceReplace查找页:替换Text替换ButtonNamebtnReplaceReplaceAll查找页:全部替换Text全部替换ButtonNamebtnReplaceCancel查找页:取消Text取消private void btnFindFindNext_Click(object sender, EventArgs e) _findStr = txtFindFind.Text; _findOption = RichTextBoxFinds.None; if (cbFindWholeWord.Checked) _findOption |= RichTextBoxFinds.WholeWord; if (cbFindMatchCase.Ch

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com