多文档文本编辑器Csharp

多文档文本编辑器Csharp
多文档文本编辑器Csharp

可视化程序设计-多文档文本编辑器

设计报告

学号:

姓名:

学院:陕西师范大学

层次:高起专

目录

一、设计分析 (3)

二、开发平台、工具 (3)

三、程序结构及设计 (3)

3.1 文件模块: (3)

3.2 编辑模块: (4)

3.3 格式模块: (4)

3.4 查看模块: (4)

3.5帮助模块: (4)

四、源程序代码说明 (6)

4.1 界面设计 (6)

4.2.具体功能的实现 (6)

五、操作方法流程及程序试验结果 (9)

5.1.程序启动界面: (9)

5.2.新建多个文本文件 (9)

5.3文档编辑页面 (10)

5.4.保存界面 (10)

5.5 打开文档 (11)

5.6 退出文档 (11)

5.7 字体大小设置界面 (12)

5.8 字体颜色设置界面 (12)

六、设计体会 (13)

一、设计分析

编写一个多文档的文本编辑器,具备以下功能:

(1)具备一般文本编辑器的基本功能:新建、保存、打开、另存为和退出;

(2)能够同时打开多个文本文件进行编辑;

(3)能够对所编辑的文件进行保存,保存类型为txt;

(4)能够打开计算机上面已经存在的文本文件,并进行编辑;

(5)编辑:(复制、剪切、粘贴、全选);

(6)格式:(自动换行、字体、颜色),格式的设置功能要区分是设置当前块的格式还是设置所有内容的格式;

(7)界面设计时应有工具栏,弹出菜单,状态栏等功能来提高操作的便利性;

二、开发平台、工具

在.NET FrameWork 3.0下采用https://www.360docs.net/doc/a44713752.html, 2010旗舰版工具;

使用C#语言。

三、程序结构及设计

应用程序提供五大模块基本功能:

3.1 文件模块:

该模块提供以下功能:

(1)新建:创建新的文本文件。

(2)打开:打开指定路径的文件。

(3)保存:保存当前文本文件。

(4)另存为:指定路径保存文本文件。

(5)历史记录:浏览文本文件的历史记录。

(6)保存到数据库:把当前文本文件保存到数据库,包括文件名,文件路径,以及文件内容。

(7)页面设置:设置页面格式。

(8)打印:打印当前文件。

(9)退出:退出程序。

3.2 编辑模块:

该模块提供以下功能:

(1)撤销:撤销上一次执行的操作。

(2)剪接:把内容剪接到系统粘贴板,再把系统粘贴板的内容剪接到指定位置。

(3)复制:把内容复制到系统粘贴板。

(4)粘贴:把系统粘贴板粘贴到指定位置。

(5)删除:删除选定内容。

(6)查找:提供查找指定字符串。

(7)替换:可以替换指定字符或者字符串。

(8)全选:选择全部内容。

(9)时间日期:提供当前系统的时间和日期。

3.3 格式模块:

(1)自动换行:可以使文本自动换行。

(2)字体大小:可以改变字体格式。

(3)字体颜色:可以改变字体颜色。

3.4 查看模块:

提供状态栏用以显示当前状态。

3.5帮助模块:

提供帮助信息以及软件的信息。

下面是模块框架图:

四、源程序代码说明

实现的关键逻辑和关键代码说明:

4.1 界面设计

创建一个MDI窗口,设置为子窗口,用于文本的输入;把主窗口改为MDI 容器,向其中加入一些功能控件,例如:openFileDialog,SaveFileDialog,menuStrips,fontDialog.colorDialog等等。

代码实现:

doc = new DocForm();

doc.MdiParent = this;

doc.Show();

4.2.具体功能的实现

(1)打开文件:

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

RichTextBoxStreamType fileType = TrunFileType(openFileDialog1.FilterIndex);

wCount++;

doc = new DocForm(fileType, openFileDialog1.FileName, openFileDialog1.FilterIndex);

doc.MdiParent = this;

doc.Show();

listDocForm.Add(doc);

}

(2)保存文件

if (sfd.ShowDialog() == DialogResult.OK)

{

RichTextBoxStreamType fileType = TrunFileType(sfd.FilterIndex);

doc.SetFileTypeIndex(sfd.FilterIndex);

doc.SetFilePath(saveFileDialog1.InitialDirectory);

df.Sourse.SaveFile(sfd.FileName, fileType);

df.SetFilePath(sfd.FileName);

oldFileType = fileType;

}

(3)另存为

tssl_FormCount.Text = string.Format("请选择保存路径");

DocForm df = (DocForm)this.ActiveMdiChild;

try

{

SaveFile(df);

filePath = df.GetFilePath();

//SaveDateToDateBase(df);

MessageBox.Show("保存成功","温馨提示");

}

catch (Exception ex)

{

return;

}

tssl_FormCount.Text = string.Format("{0}保存成功", doc.Text); (4)查找实现

if (doc.Sourse.Text.Contains(strOld))

{

Clipboard.Clear();

count = doc.Sourse.Find(strOld, index, RichTextBoxFinds.None);

doc.Sourse.Select(count, str.Length);

Clipboard.SetText(doc.Sourse.SelectedText.Replace(strOld, strNew));

doc.Sourse.Paste();

count++;

}

(5)替换实现:

if (doc.Sourse.Text.Contains(str))

{index = doc.Sourse.Find(str, index, RichTextBoxFinds.None);

doc.Sourse.Select(index, str.Length);

index++}。

(6)新建功能

wCount++;

doc = new DocForm();

listDocForm.Add(doc);

doc.MdiParent = this;

doc.Text = "文档" + wCount;

doc.Show();

if (wCount == 1)

{

doc.WindowState = FormWindowState.Maximized;

}

tssl_FormCount.Text = string.Format(" 成功创建第{0} 个文件.,当前文件名为:{1} ", this.MdiChildren.Length,doc.Text);

(6)其他功能的实现(代码太多,不一一列举)

五、操作方法流程及程序试验结果

5.1.程序启动界面:

5.2.新建多个文本文件

选择文件-新建,即可建立多个文本文档。

5.3文档编辑页面

文件新建完成后,即可对文件进行编辑,在文件编辑页面,可以对文件的字体大小、颜色等进行设置,如下图所示:

5.4.保存界面

文件编辑完成后,点击文件-保存/文件-另存为,即可对文件进行保存,如下图所示:

5.5 打开文档

点击文件-打开,即可打开打开文档页面,如下图所示:

5.6 退出文档

点击文件-退出,即可退出程序。

5.7 字体大小设置界面

5.8 字体颜色设置界面

六、设计体会

由于之前很少接触Dialog之类的控件,很多属性方法都不知道,所以本次程序设计时遇到了很多困难,很多都是来源于这些控件方法的调用问题。由于平时对这些控件以及一些属性方法使用都比较少,导致了在编写程序中很多本来很简单的问题都被我复杂化了,然后尝试了很多模式,看书研究它的属性使用,用很多方法去测试他的结果,不同的使用方法等,最后基本上掌握了这些文本控件类的使用,然后把设计的功能实现了。不过其中遇到很多Bug,不知道怎么解决,然后问同学,上网找解决办法,虽然过程很痛苦,不过最后还是解决了。编写的程序虽然不是那么的专业化,但是完成了整个程序,实现了设计要求的所有功能。

虽然做这个应用程序花费了我很多时间和精力,不过还是很好地完成了整个程序。平时都是用系统自带的记事本编辑文本文件,现在用着自己编写的文本编辑器,还是蛮有成就感的。

简单文本编辑器——课程设计(delphi)

目录 1内容简介 (3) 2程序设计流程及方法 (3) 2.1 设计思路 (3) 2.2 事件响应方法 (4) 3测试结果 (5) 3.1调试方法 (5) 3.2调试过程 (5) 3.3调试结果 (6) 4分析与探讨 (8) 4.1 函数的使用 (8) 4.2 人性化设计 (9) 独立性声明 (11) 一个简单的文本编辑器

一、内容简介 为满足个人的个性需求,为此设计一个有着自己特色的文本编辑器,实现自己的特定用途。 本实例程序可以对文本进行基本的编辑;能执行基本的文件操作;同时它的状态栏具有提示信息、显示时间及当前光标位置的功能。 而重点在于熟悉Delphi中ObjectTreeView、ObjectInspector等的用法及相应的属性设置以及一些插件的使用。源代码的编写是重中之重。 开发的这个类似于“写字板”的程序,不过功能要相对简单一些。该程序的主要功能包括: 1、能执行基本的文件操作,包括新建、打开、保存一个文本文件 2、能对文本进行基本的编辑操作,包括剪切、复制、粘贴、删除、选择及查找 3、能对文本进行简单的格式化操作,包括改变文本的字体、字号、对其方式等 4、可以在状态栏显示提示信息、当前光标位置以及系统日期和时间 二、程序设计流程及方法 (一)、设计思路 基本思路:先创建一个窗体,添加菜单栏,工具栏以及状态栏,然后利用ActionManger建立一些基本指令,通过修改基本指令的属性来制作菜单和快捷键,并把它们放到菜单栏和工具栏边上。然后再添加一个ComboEx和Edit来作为字体的模式和大小的设置项,这样就建立起了一个用户界面和完成了部分功能,对于不能直接通过属性设置的功能,则通过编写时间的源代码来实现。 按照面向对象程序的设计方法,在应用程序框架下,利用VCL(Visual Compoment Library,可视化组件)进行填充,本程序将用到Delphi7提供的RichEdit、ImageList、ActionManger、ActionMainMenuBar、ActionToolBar和StatusBar组件。 在ActionManger组件中,将使用Delphi 7提供的一些标准的指令,这样可

面向对象程序设计—文本编辑器的设计与实现

课程设计报告书 课程名称面向对象程序设计 设计题目文本编辑器的设计与实现 专业班级 学号 姓名 指导教师 年月

目录 1 设计时间 (1) 2 设计目的 (1) 3设计任务 (1) 4 设计内容 (1) 4.1需求分析 (1) 4.2概要设计 (1) 4.2.1功能结构图 (1) 4.3详细设计 (2) 4.3.1流程图 (3) 4.4系统的功能实现 (4) 4.4.1类或包的加载 (5) 4.4.2设计一个主类,变量的定义 (5) 4.4.3文件操作功能的实现 (6) 4.5运行测试 (25) 4.5.1文本编辑器界面 (25) 4.5.2各功能菜单界面 (25) 5 总结与展望 (26) 参考文献 (26) 成绩评定 (27)

1 设计时间 2011年12月19日~2011年12月25日 2 设计目的 本次设计是学习完《java6程序设计》课程后进行的一次全面的综合练习,目的是加深对本学期课程的理解,通过设计文本编辑器并实现其功能来熟练掌握java语言基础,初步掌握软件开发的基本方法与技术将理论课程中学到的知识运用到实践中,实现有一定规模的Java应用。 3设计任务 本次设计的主要任务是文本编辑器的设计与实现,要求设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。 4 设计内容 4.1需求分析 现在网络上各种文本编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed,xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的文本编辑器程序。 4.2概要设计 4.2.1功能结构图

java课设—文本编辑器的设计与实现

淮 海 工 学 院 计算机工程学院
课程设计报告
设计名称: 选题名称: 姓 名: 面向对象课程设计 文本编辑器的设计与实现 学 号:
专业班级: 系 (院) : 设计时间: 设计地点: 计算机工程学院 2015.6.21~2014.7.4 计算机楼机房、教室、宿舍
指导教师评语:
成绩:
签名:
年 月 日

面向对象课程设计报告

1
页,共
14

1.课程设计目的
《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程 后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理 论、方法和基础知识的理解,掌握使用 Java 语言进行面向对象设计的基本方法,提高运用 面向对象知识分析实际问题、解决实际问题的能力。
2.课程设计任务与要求:
课程设计可选用 NetBeans、Eclipse、JBuilder 等作为开发平台以提高开发效率,尽可能熟 练掌握其中一种集成开发环境。建议采用 UML 建模技术进行系统的分析设计,在 Visio 中画出系 统用例图和类图,并将 UML 图复制到设计报告中。 通过这次设计,要求掌握以下内容: 1)面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用 2)类、包、接口的定义与使用 3)常用工具类与算法的实现(数组、向量、字符串、链表) 4)Java 常用标准 GUI 组件及其事件处理 5)Java 的异常处理机制 6)Java 的数据库连接技术 7)Java 的多线程技术与动画制作 8)Java 的网络编程 任务: 设计一个类似于 Windows 记事本(Notepad)的 Java 程序。可以打开、新建、保存一个文本 文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复 制、粘贴、剪切、查找、替换等) ;在文本中能够插入对象。简单文本编辑器提供给用户基本的 纯文本编辑功能, 能够将用户录入的文本存储到本地磁盘中。 能够读取磁盘中现有的纯文本文件, 以及方便用户进行需要的编辑功能。

OPT算法和简单文本编辑器

通达学院 专业课程设计I 题目1 OPT算法模拟实现 题目2 文本编辑器 专业 学生姓名 班级学号 指导教师 指导单位计算机学院、软件学院日期

OPT算法模拟实现(OS类) 一、课题内容和要求 内容:学习虚拟存储机制中页面调度算法,通过编程模拟实现页面调度的OPT算法,进一步理解页面调度的OPT算法的概念及含义,提高对OPT页面调度算法的认识,同时提高自己动手实践的能力。加深对主存与辅助存储器统一管理、逻辑地址与物理地址转换、页序列走向的装入和替换问题的理解,同时有利于对存储技术的理解。 要求:利用C语言或是C++设计编程,完成OPT算法的设计,表示页序列走向的装入和替换,算出缺页中断率。 二、概要设计 OPT算法即最佳优先算法,实质是通过调页功能和页面置换功能,陆续把即将要运行的页面调入内存,并且把暂时不运行的页面从内存在删除,置换时以页面为单位,算出缺页次数和缺页率,缺页数用diseffect 表示,页面序列数m,初始值diseffect=0,缺页率= diseffect /m。 用C语言设计OPT算法的程序,可以模拟实现算法,在理论联系实际的基础上,分析各个OPT页面置换算法的直接访问或是缺页中断,然后替换的过程。为了能实现OPT请求调页和置换功能,在VC++6.0上编程模拟实现。该算法选择永不使用的或是在最长时间内不再被访问的页面进行置换,这是理想化算法,具有最好的性能,淘汰访问串中将来再也不出现的或者是在离当前最远的位置上出现的页,这样淘汰掉该页将不会造成因需要访问该页又立即把它调入的现象。这种算法难以实现,因为它要求必须预先知道每一个进程的访问串。实验中在对操作系统的整体把握上,将操作系统的OPT算法用于实践中去,模拟出页面调度算法得出缺页率。 具体实验程序流程图如下:

项目一:文本编辑器的设计与实现

课程: C# Windows程序设计学年第_ _学期第周月日教学内容备注 项目一:文本编辑器的设计与实现 【项目背景】 文本编辑器有两类:单文档和多文档文本编辑器。单文档文本编辑器一次只能打开一个文件,如果要打开另一个文件,必须关闭当前打开的文件,微软的写字板程序就是单文档字处理程序。多文档文本编辑器允许同时打开多个文件,每个文件占用一个子窗口,微软的Word程序就是多文档字处理程序。本项目主要介绍建立单文档文本编辑器的方法,通过分析现有文本编辑器的功能与操作过程,利用C#开发一个新的文本编辑器。 【主要内容与技能要求】 (1)会进行复杂窗口设计 (2)会对常见的文本编辑功能进行分析与编码实现 (3)会设计多文档窗口 一、预备知识 本项目主要利用RichTextBox控件来构成文本编辑区域。 1、RichT extBox控件的主要属性 属性SelectedText、SelectionLength、SelectionStart: 属性SelectionFont: 属性SelectionColor: 属性Lines: 属性Modified: 事件SelectionChange: 事件TextChanged: 2、RichT extBox控件的主要方法 方法Clear(): 方法Copy()、Cut()、Paste(): 方法SelectAll(): 方法Find(): 方法SaveFile()和LoadFile():

课程: C# Windows程序设计学年第_ _学期第周月日教学内容备注方法Undo(): 方法Redo(): 二、功能设计与实现 1、剪贴板功能 放RichTextBox控件到窗体。属性Name=richTextBox1,Dock=Fill,Text=""。 private void menuItemEditCut_Click(object sender,EventArgs e) { richTextBox1.Cut(); } //剪切 private void menuItemEditCopy_Click(object sender,EventArgs e) { richTextBox1.Copy(); } //拷贝 private void menuItemEditPaste_Click(object sender,EventArgs e) { richTextBox1.Paste(); } //粘贴 private void menuItemEditUndo_Click(object sender,EventArgs e) { richTextBox1.Undo(); } //撤销 private void menuItemEditRedo_Click(object sender,EventArgs e) { richTextBox1.Redo(); } //恢复 2、存取文件功能 文本编辑器都应具有文件存取功能,菜单顶级菜单项“文件”的弹出菜单中一般包括如下菜单项:新建、打开、关闭、保存和另存为等。需要用到打开文件对话框(OpenFileDialog控件)和保存文件对话框(SaveFileDialog控件)。和 两个对话框的常用属性和方法: 属性Filter:例如Filter=“纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*” 属性FilterIndex: 属性FileName: 属性InitialDirectory: 属性DefaultExt: 方法ShowDialog(): 存取文件功能实现如下:

几种常用网页文本编辑器总结

文本编辑器应用总结 一.lhgeditor文本编辑器 lhgeditor组件文件结构: 1. lhgeditor.js:组件的核心JS文件 2. lhgeditor.css:组件的样式表文件 3. images:组件所需的图片都在此文件夹中 以上三个文件为组件所必须的三个文件,组件包中其它以“_”开头的文件为示例的演示文件,实际使用中不需要这些文件。当然框架核心文件lhgcore.js是每个组件都必须用到的文件,记得加载组件前先要加载此文件。 lhgeditor组件使用说明: 1. 在调用组件的页面加载lhgcore.j s和lhgeditor.js两个文件。 2. 在window.onload函数里加入J.editor.add(编辑器的id).init(); 例:

二.nicEdit文本编辑器