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

淮海工学院计算机工程学院
课程设计报告
设计名称:面向对象课程设计
选题名称:文本编辑器的设计与实现
姓名:学号:
专业班级:
系(院):计算机工程学院
设计时间:2015.6.21~2014.7.4
设计地点:计算机楼机房、教室、宿舍
();
("确定");
("这是一个简单的文本编辑器!");
();
();
();
(200,200,250,150);
();
(20 ,60,220,30);
( ("楷体",16));
();
(100,100,50,30);
();
}
( e)
{
(())
{
();
}
}
}
4.2运行结果显示
如图1:文本编辑器主界面
如图2:文本编辑器文件菜单
如图3:
文本
编辑
器编
辑菜
单
如图4:文本编辑器格式菜单
如图5:文本编辑器帮助菜单
如图6:文本编辑器字体格式和背景
如图7:
文本编。
VB课程设计-文本编辑器

VB课程设计报告——文本编辑器学院名称:学生姓名:专业名称:班级:一、课程设计题目用Visual Basic程序设计语言编写一个简易的文本编辑器要求:有最基本的文本编辑功能,包括复制、剪切、粘贴、字体设置、背景颜色设置、字体颜色设置;同时拥有文本管理功能,包括打开文件、保存文件;以及完整的系统运行退出等功能,所有的操作可选择设定的快捷键。
二、课程设计目的虽然本学期的Visual Basic课程是自学的,相对于课堂学习有些不足,但通过平时的上机实验,初步掌握了VB程序设计的各种方法,学会了编写最基本的VB程序;对于完整的VB程序设计来讲是很不足的,平时掌握的只是单独的窗体(Form)程序编写,以及各种简单控件的使用,没有做到很好连贯性,所以有必要做一次完整的VB程序设计,结合所学的基本知识,使用多个窗体自成一套系统,加上各种控件的综合运用,初步设计一个合格的VB 应用程序;这样在巩固VB所学的同时,更好地学会程序设计的一些思想和方法,对于以后的编程学习或是工作有重要的实践意义。
三、课程设计说明题目为文本编辑器,即是最基本的文本编辑程序,首先必须做好文本编辑器本身的功能,然后对其完善,做成一个完整的小程序功能设计说明:功能是这个文本编辑器的核心内容,也就是程序的作用,它是用来做什么的;本程序就是用来编写文本的,编写过程中要利用到窗体(Form)一个,控件包括:RichTextBox1(超文本框)、CommonDialog(通用对话框),以及InputBox(消息框)、菜单编辑器等,。
要做的工作就是编写代码把这些控件和窗体等结合为一体,使得程序能够成为一体,顺畅运行。
本次设计在按照题目要求的前提下,为了完整地展示一个应用程序,在最初就设计为最基本的文本的编辑器,所以取名为“易记本”,就是简易记事本的简称,然后加入图标,在程序完成之后还进行了大包操作,得到应用程序的安装文件,最后安装在电脑上运行使用。
四.源代码Private Sub Command1_Click()Dim i As IntegerIf Text2.Text <> "123456" Theni = MsgBox("密码错误", 5 + vbExclamation, "警告")If i <> 6 ThenEndElseText2.Text = ""Text2.SetFocusEnd IfEnd IfForm1.HideForm2.ShowEnd SubPrivate Sub Form_Load()Text1.Text = ""Text1.MaxLength = 6Text2.Text = ""Text2.MaxLength = 6Text2.PasswordChar = "*"End SubPrivate Sub Text1_LostFocus()If Not IsNumeric(Text1.Text) Then MsgBox "帐号必须为数字", , "警告" Text1.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command1_Click()Form2.HideForm3.ShowEnd SubPrivate Sub Command2_Click()Form2.HideForm4.ShowEnd SubPrivate Sub Command3_Click()Form2.HideForm5.ShowEnd SubPrivate Sub Color_Click() CommonDialog1.Action = 3Text1.ForeColor = CommonDialog1.Color End SubPrivate Sub Command1_Click()Form3.HideForm2.ShowEnd SubPrivate Sub Copy_Click()Dim st As Stringst = Text1.SelTextEnd SubPrivate Sub Cut_Click()Dim st As Stringst = Text1.SelTextText1.SelText = ""End SubPrivate Sub Exit_Click()EndEnd SubPrivate Sub Font_Click()CommonDialog1.Flags = cdlCFBoth Or cdlCFEffects CommonDialog1.Action = 4Text1.FontName = CommonDialog1.FileNameText1.FontSize = CommonDialog1.FontSizeText1.FontBold = CommonDialog1.FontBoldText1.FontItalic = CommonDialog1.FontItalicText1.FontStrikethru = CommonDialog1.FontStrikethru Text1.FontUnderline = CommonDialog1.FontUnderline Text1.ForeColor = CommonDialog1.ColorEnd SubSub New_Click()Text1.Text = ""Me.Caption = FileEnd SubSub Open_Click()CommonDialog1.Action = 1Text1.Text = ""Open CommonDialog1.FileName For Input As #1Do While Not EOF(1)Line Input #1, inputdataText1.Text = Text1.Text + inputdata + vbCrLfLoopClose #1End SubPrivate Sub Paste_Click()Text1.SelText = stEnd SubPrivate Sub Print_Click()CommonDialog1.Action = 5For i = 1 To CommonDialog1.CopiesPrinter.Print Text1.TextNext iPrinter.EndDocEnd SubPrivate Sub SaveAs_Click()CommonDialog1.FileName = "vb课设用.txt" CommonDialog1.DefaultExt = "txt"CommonDialog1.Action = 2Open CommonDialog1.FileName For Output As #1 Print #1, Text1.TextEnd SubDim arr As Long, sum As Long, a As IntegerPrivate Sub Command1_Click()a = HScroll1.ValueText1.Text = plus(a)Call isprime(a)End SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub HScroll1_Change()Label2.Caption = HScroll1.ValueEnd SubSub isprime(max As Integer)Dim x As Integer, i As Integer, j As IntegerFor i = 2 To maxx = 0For j = 2 To i - 1If i Mod j = 0 Then x = 1Next jIf x = 0 Then Label2.Caption = Label2.Caption & i & " " Next iEnd SubFunction plus(a As Integer) As LongFor i = 1 To asum = sum + iNext iplus = sumEnd FunctionDim x1 As IntegerDim y1 As IntegerDim x2 As IntegerDim y2 As IntegerDim flag As BooleanPrivate Sub Command1_Click()On Error Resume NextCommonDialog1.CancelError = True CommonDialog1.DialogTitle = "颜色" CommonDialog1.ShowColorIf Err <> 32755 Then Picture1.ForeColor = CommonDialog1.Color End IfEnd SubPrivate Sub Command2_Click()Picture1.ClsEnd SubPrivate Sub Command3_Click()Form5.HideForm6.ShowEnd SubPrivate Sub Option1_Click()Picture1.DrawWidth = 1End SubPrivate Sub Option2_Click()Picture1.DrawWidth = 2End SubPrivate Sub Option3_Click()Picture1.DrawWidth = 4End SubPrivate Sub Option4_Click()Picture1.DrawWidth = 8End SubPrivate Sub Form_Load()Picture1.Scale (0, 0)-(400, 400)flag = FalseEnd SubPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) flag = Truex1 = Xy1 = YEnd SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If flag = False ThenExit SubEnd IfIf flag = True Thenx2 = Xy2 = YPicture1.Line (x1, y1)-(x2, y2)x1 = x2y1 = y2End IfEnd SubPrivate Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) flag = FalseEnd SubDim ctP As Single, ctDu() As Single, ctDuS As LongPrivate Sub Command1_Click()Picture1.AutoRedraw = True: ctP = 3.1415926Timer1.Interval = 20: Timer1.Enabled = Not Timer1.EnabledEnd SubPrivate Sub Command2_Click()Form7.HideForm6.ShowEnd SubPrivate Sub Form_Load()Me.Caption = "旋转的椭圆": Command1.Caption = "转/停"Text1.Text = "9 个": Timer1.Enabled = FalseEnd SubPrivate Sub Text1_Change()ctDuS = Val(Text1.Text)If ctDuS > 200 Then Text1.Text = "200"If ctDuS < 1 Then ctDuS = 1ReDim ctDu(0 To ctDuS)End SubPrivate Sub Timer1_Timer()Dim I As LongPicture1.DrawWidth = 3Picture1.ClsFor I = 0 To ctDuSctDu(I) = ctDu(I) + ctP * 0.01 * I / 9If ctDu(I) > ctP * 2 Then ctDu(I) = ctDu(I) - ctP * 2Show1 ctDu(I), &HFFFFFF / (ctDuS + 1) * I * 0.6NextDim x As Single, y As SingleStatic J As SinglePicture1.DrawWidth = 15x0 = Picture1.ScaleWidth * 0.5: y0 = Picture1.ScaleHeight * 0.5 Picture1.PSet (x0, y0), 255x = 1200: y = 0: J = J - 0.05If J < -ctP * 2 Then J = J + ctP * 2Zhuan J, x, yPicture1.PSet (x0 + x, y0 + y), RGB(0, 0, 255)End SubPrivate Sub Show1(ToJ As Single, Se As Long)Dim I As Single, x As Single, y As Single, x0 As Single, y0 As Single Dim a As Single, b As Single, x1 As Single, y1 As SingleIf Picture1.ScaleWidth < Picture1.ScaleHeight Thena = Picture1.ScaleWidth * 0.45Elsea = Picture1.ScaleHeight * 0.45End Ifb = a * 0.25x0 = Picture1.ScaleWidth * 0.5: y0 = Picture1.ScaleHeight * 0.5x = -a: y = 0: Zhuan ToJ, x, yx1 = a: y1 = 0: Zhuan ToJ, x1, y1Picture1.Line (x0 + x, y0 + y)-(x0 + x1, y0 + y1), Sex = 0: y = -b: Zhuan ToJ, x, yx1 = 0: y1 = b: Zhuan ToJ, x1, y1Picture1.Line (x0 + x, y0 + y)-(x0 + x1, y0 + y1), SeFor I = 0 To ctP * 2 Step 0.1x = a * Sin(I): y = b * Cos(I)Zhuan ToJ, x, yPicture1.Line -(x0 + x, y0 + y), SeNextx = a * Sin(I): y = b * Cos(I)Zhuan ToJ, x, yPicture1.Line -(x0 + x, y0 + y), SeEnd SubPrivate Sub Zhuan(ToJ As Single, x As Single, y As Single) Dim S As Single, J As SingleS = Sqr(x ^ 2 + y ^ 2)If S = 0 Then J = 0 Else J = y / SIf Abs(J) >= 1 ThenIf J > 0 Then J = ctP * 0.5 Else J = -ctP * 0.5ElseJ = Atn(J / Sqr(-J * J + 1))End IfIf x < 0 Then J = -ctP - Jx = S * Cos(J + ToJ): y = S * Sin(J + ToJ) End Sub Private Sub Command1_Click()EndEnd Sub五、运行结果六.心得体会通过本次课程设计,使我对VB的认识更加深入了一层,VB主要由两部分组成,一个是Visual 可视化界面设计,另一个是Basic程序设计。
如何使用文本编辑器创建新的程序文件

如何使用文本编辑器创建新的程序文件程序员们在编写代码时通常会使用文本编辑器来创建新的程序文件。
文本编辑器是一种软件工具,用于处理、编辑和生成纯文本文件。
下面将介绍如何使用文本编辑器创建新的程序文件的步骤。
第一步:选择适合编程的文本编辑器首先,我们需要选择一款适合编程的文本编辑器。
目前市面上有许多文本编辑器可供选择,如Sublime Text、Visual Studio Code、Atom 等。
这些编辑器有丰富的功能和插件,让编程更加方便高效。
第二步:打开文本编辑器并创建新文件在选择并安装好合适的文本编辑器后,我们打开该编辑器,准备创建新的程序文件。
在编辑器的菜单中,选择“文件”或“新建”选项,然后选择“新建文件”或者直接使用快捷键Ctrl+N(或Cmd+N)来创建一个新的空白文件。
第三步:选择适合的文件类型和格式一般来说,编程需要用到不同的文件类型和格式,如C、C++、Java、Python等。
因此,在创建新文件时,我们需要根据要编写的程序语言来选择相应的文件类型和格式。
在大多数文本编辑器中,可以通过选择“文件”菜单中的“保存为”选项或者使用快捷键Ctrl+S(或Cmd+S)来保存新文件。
在保存时,我们要注意选择正确的文件类型和格式,并为文件起一个合适的名字,以便后续的编程工作。
第四步:编写程序代码一旦新的程序文件创建并保存好,我们就可以开始编写程序代码了。
通过在文本编辑器中输入代码,并利用编辑器的代码自动补全、语法高亮等功能,可以更加高效地编写程序。
需要注意的是,在编写代码时要保持良好的代码风格和缩进,以提高代码的可读性和维护性。
第五步:保存和管理程序文件在编写程序的过程中,及时保存程序文件是十分必要的。
通过选择文本编辑器中的“保存”选项或使用快捷键Ctrl+S(或Cmd+S)保存文件,可以保留最新的代码修改。
另外,在项目的开发过程中,我们可能会有多个程序文件需要创建和管理。
因此,我们可以使用文本编辑器提供的“新建标签页”或“分屏显示”功能,便于在同一个编辑器窗口中同时查看和编辑多个文件。
文本编辑器的程序设计及代码示例

文本编辑器的程序设计及代码示例在计算机科学领域,文本编辑器是一种用于编辑文本文件的应用程序。
它允许用户创建、修改和保存文本文件,并提供了一系列功能来方便用户进行编辑操作。
本文将介绍文本编辑器的程序设计原理,以及示范几个常见的代码示例。
一、程序设计原理文本编辑器的程序设计需要考虑以下几个方面:1. 用户界面设计:一个好的文本编辑器应具备直观友好的用户界面,提供各种操作选项和快捷键,使用户能够轻松地进行文本编辑。
2. 文本处理功能:文本编辑器应具备基本的文本处理功能,如插入和删除文本、查找和替换、拷贝和粘贴等。
这些功能需要通过合适的数据结构和算法来实现。
3. 文本格式化:文本编辑器应支持对文本进行格式化操作,如自动对齐、缩进、换行等。
4. 多标签支持:多标签功能允许用户同时打开多个文本文件,并在它们之间切换。
这要求程序设计中能够有效地管理多个文本文件的打开、关闭和切换。
二、代码示例下面是几个简单的代码示例,用于展示文本编辑器的一些基本功能。
1. 创建文本文件```pythondef create_file(filename):# 创建一个新的文本文件file = open(filename, "w")file.close()```2. 打开文本文件```pythondef open_file(filename):# 打开文本文件并返回文件对象 file = open(filename, "r")return file```3. 插入文本```pythondef insert_text(file, position, text): # 在指定位置插入文本file.seek(position)content = file.read()file.seek(position)file.write(text + content)```4. 删除文本```pythondef delete_text(file, start, end):# 删除指定位置的文本file.seek(start)content = file.read()file.seek(start)file.write(content[:end - start])```5. 查找和替换文本```pythondef find_replace(file, old_text, new_text):# 在文本中查找指定内容并替换file.seek(0)content = file.read()new_content = content.replace(old_text, new_text)file.seek(0)file.write(new_content)```6. 关闭文本文件```pythondef close_file(file):# 关闭文本文件file.close()```三、总结通过以上代码示例,我们展示了文本编辑器的一些基本功能,包括创建文件、打开文件、插入和删除文本、查找和替换文本以及关闭文件。
在线富文本公式编辑器的设计与实现

分繁琐 。针对该 问题 ,美 国查普曼大学的 P t p e e r isn提出一 eJ 种利 用类 T X语法编辑数学公式的方法——As I tML e cI h 。 Ma 该 方法在 网页载入 时将类 T X语法转换成 Ma ML代码 , e t h 便 于浏览器解析并显示 ,并用 Jv Sr t a a ci 把类 T X语 法和转换 p e
结合 X T H ML实现 火狐浏 览器 下公式的所见即所得编辑 ,并将公式编辑页面应 用到文本 编辑器 中,实现公 式的显示 、复编辑、保存、载入
等功 能,有利于公式的在线编辑和传输 。
关健诃 :文档对象模型 ;数学标记语言 ;公 式编辑 ;富文 本编辑 ;A C I tML文档 SI h Ma
函数封装成一个 J s库文件 ,适 用于 网络 的数学公式编辑 。 J AS IMa ML 库文件是结合 Mah CI t h tML 开发的 ,并且兼
容主流 的浏览器 ,即 AS I tML 的使用必须浏 览器 支持 CI h Ma Mah tML, 虽然主流 的浏览器 已经能够支持 Ma ML, 是只 t h 但 有火狐(i F x浏览器支持对 Ma ML代 码格 式公 式的无插 Fr o ) e t h 件显示 ,而 FrF x浏览器本身是基于 W3 i o e C标准 的,因此 , 本文选择在 FrF x浏览器下开发 。 i o e
De i n a d I p e e t to fOn- n c e t r u a Ed t r sg n m l m n a i n 0 l eRi h T x i Fo m l io
ZHENG n S Bi . HEN i g x a M n -i
Axure的文本输入与编辑效果设计思路

Axure的文本输入与编辑效果设计思路Axure是一款功能强大的原型设计工具,它可以帮助用户快速创建交互式原型。
在设计过程中,文本输入与编辑效果的设计是非常重要的一部分。
本文将探讨Axure的文本输入与编辑效果设计思路,并提供一些实用的技巧和建议。
1. 界面设计与布局在设计文本输入与编辑效果之前,首先需要考虑界面的整体设计与布局。
一个清晰、简洁的界面可以提高用户的使用体验。
在Axure中,可以使用线框图和元件库来快速绘制界面,确保布局合理。
2. 输入框设计输入框是用户进行文本输入的关键元素,因此需要特别关注其设计。
在Axure 中,可以使用文本框元件或自定义形状来创建输入框。
为了提高可用性,可以在输入框上添加提示文本,以指导用户输入内容。
3. 输入验证与反馈在文本输入过程中,输入验证与反馈是必不可少的。
Axure提供了多种验证方式,如必填字段、长度限制、格式验证等。
在设计过程中,可以使用条件判断来实现输入验证,并及时向用户提供错误提示信息,以便用户及时修改错误。
4. 富文本编辑有时候,用户需要进行富文本编辑,如加粗、斜体、下划线等操作。
在Axure 中,可以使用富文本编辑器组件来实现这些功能。
通过设置合适的样式和交互效果,可以使用户更加方便地进行文本编辑。
5. 自动完成与建议为了提高用户的输入效率,可以考虑添加自动完成和建议功能。
在Axure中,可以使用动态面板和数据列表来实现这些功能。
通过设置合适的触发条件和交互效果,可以使用户在输入过程中得到相关的建议和提示。
6. 撤销与重做在文本编辑过程中,用户可能会犯错或者需要撤销之前的操作。
因此,撤销与重做功能是非常重要的。
在Axure中,可以使用动态面板和变量来实现这些功能。
通过设置合适的触发条件和交互效果,可以使用户方便地撤销和重做操作。
7. 键盘快捷键为了提高用户的操作效率,可以考虑添加键盘快捷键。
在Axure中,可以使用事件触发器和条件判断来实现这些功能。
文本编辑器实现原理

文本编辑器实现原理
文本编辑器的实现原理可以简单概括为以下几步:
1.用户输入文本:用户在编辑器中输入文本,此时文本呈现在编辑器
的屏幕上。
2.文本存储:编译器将用户输入的文本存储在内存或外部存储设备中,以便用户在下次使用编辑器时可以继续编辑。
3.文本修改:当用户对文本进行修改时,编辑器会检测用户的操作
(比如插入、删除、修改等)并相应地更新文本的内容。
4.光标控制:编辑器需要追踪光标的位置并控制其移动,以便用户可
以编辑文本的任何部分。
5.用户界面:用户界面需要显示编辑器的各种工具和选项,比如字体、颜色、格式等。
6.保存和打开:编辑器需要提供保存和打开文本的功能,以便用户可
以在其他时间或设备上打开和编辑他们的文本。
总的来说,文本编辑器实现的原理就是通过对用户输入的文本进行存储、修改和展示等一系列操作,为用户提供方便快捷的文本编辑功能。
数据结构-课程设计--简易文本编辑器

《数据结构》课程设计班级: 10计本2班姓名:邓寅森学号: 2010305202指导教师:杨老师完成日期: 2011年12月计算机科学与技术系课程设计评分表课程名称: 数据结构 简易文本编辑器教师签名:日期:一、需求分析1.1 问题描述传统的纸质文档已经不能满足大家的需求,有容易丢失、查找不方便等缺点。
计算机信息管理为人们的生活、工作提供了方便,提高了效率。
“简易文本编辑器”是为了帮助老师、同学或其他一些需要使用文本编辑的人员进行管理和分析的一种计算机应用程序。
1.2 基本任务通过用户调查分析及实际需求,系统需要实现如下基本任务:(1)输入数据信息建立文本;(2)查询文本中满足要求的信息;(3)插入新的信息到文本中;(4)删除不再需要的文本信息;(5) 查看所有的文本信息。
二、概要设计为了完成需求分析的基本任务,主要从以下3个方面进行设计:2.1 主界面设计为了实现简易文本编辑器的各项功能,设计了一个含有多个菜单项的主控菜单模块以操作系统的各项功能,以方便用户使用系统。
系统进入菜单运行界面如图所示:简易文本编辑器主菜单2.2 数据结构设计系统采用线性表的顺序存储结构表示和存储“简易文本编辑器”中的信息。
实现文本的输入,删除,插入,查找,显示功能。
2.3 系统功能设计运行程序,提示进入菜单,按“回车键”进入主菜单,再可以在主菜单上进行各项操作。
每次进入菜单,选择“1键”新建文本,然后才可以进行其他操作,或者按“0键”选择退出。
三、模块设计3.1 模块设计系统主要包含主程序模块和其它操作模块。
其调用关系如图所示。
模块调用示意图3.2 系统子模块及其功能设计本系统共设计了16个子模块,各程序的函数名及功能说明如下:1、/*由模式串nextval值*/void GetNextval(SqVString T,int nextval[])2、/*模式匹配KMP算法*/int KMPIndex(SqVString S,int pos,int next[],SqVString T)3、/*初始化串*/void InitString(SqVString *S,char *str)4、/*串插入*/int StrInsert(SqVString *S,int pos,SqVString T)5、/*串删除*/int StrDelete(SqVString *S,int pos,int len)6、/*求子串*/int SubStr(SqVString S,int pos,int len,SqVString *T)7、/*串连接*/int Concat(SqVString *S,SqVString T)8、/*串赋值*/int StrAssign(SqVString *S,char *value)9、void InputString() //新建10、void DeleteString()//删除11、void DeleteSubstring()//删除12、void InsertSubstring()//查找13、void DisplayString()//显示14、void cd()//进入界面15、void ts()//主菜单16、void tc()//退出3.3 系统模块之间的调用关系系统的16个子模块之间的主要调用关系所示:系统函数调用关系图四、详细设计4.1 数据结构设计系统采用线性表的顺序存储结构存储通讯录信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程: 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():存取文件功能实现如下:课程: C# Windows程序设计学年第_ _学期第周月日教学内容备注把OpenFileDialog和SaveFileDialog控件放到窗体中。
为菜单增加顶级菜单项:文件,为其弹出菜单增加菜单项:新建、打开...、保存...、另存为...、退出。
修改这些菜单项的Name属性分别为:mainMenuFile、menuItemFileNew、menuItemFileOpen、menuItemFileSave、menuItemFileSaveAs、menuItemFileExit。
为Form1类中定义变量:string s_FileName=“”,记录当前编辑的文件名private void menuItemFileNew_Click(object sender,EventArgs e) //新建文件菜单项{ richTextBox1.Text=""; //或richTextBox1.Clear();s_FileName=""; //新建文件没有文件名。
}private void menuItemFileOpen_Click( //打开文件菜单项object sender,EventArgs e){ if(openFileDialog1.ShowDialog()==DialogResult.OK){ s_FileName=openFileDialog1.FileName;richTextBox1.LoadFile(openFileDialog1.FileName,RichTextBoxStreamType.PlainText);}}private void menuItemFileSaveAs_Click( //另存为菜单项object sender,EventArgs e){ if(saveFileDialog1.ShowDialog()==DialogResult.OK){ s_FileName=saveFileDialog1.FileName;richTextBox1.SaveFile(saveFileDialog1.FileName,RichTextBoxStreamType.PlainText);} //注意存取文件类型应一致。
}private void menuItemSaveFile_Click( //保存文件菜单项object sender,EventArgs e){ if(s_FileName.Length!=0)课程: C# Windows程序设计学年第_ _学期第周月日教学内容备注richTextBox1.SaveFile(s_FileName,RichTextBoxStreamType.PlainText);elsemenuItemFileSaveAs_Click(sender,e);}private void menuItemExit_Click( //退出菜单项object sender,EventArgs e){ Close(); }3、修改字体为修改使用的字体,可打开字体对话框FontDialog,选择指定字体。
可以按两种方式修改字体,如果未选中文本,表示以后键入的字符将按选定字体输入。
如果选中文本,则仅修改选定文本的字体。
修改字符颜色也根据同样原则。
修改字体要用到FontDialog控件可以用FontDialog对话框选定指定字体,FontDialog控件和OpenDialog控件的属性和方法基本相同,这里只介绍属性Font,它代表用FontDialog对话框选定的字体。
修改字体实现方法:放FontDialog控件到窗体,属性Name=fontDialog1。
为菜单增加顶级菜单项:格式,属性Name为mainMenuModel,为其弹出菜单增加菜单项:字体,属性Name为menuItemModelFont,为菜单“格式|字体”菜单项增加单击事件处理函数如下:private void menuItemModelFont_Click(object sender,EventArgs e){ if(fontDialog1.ShowDialog()==DialogResult.OK)richTextBox1.SelectionFont=fontDialog1.Font;}4、About对话框单击菜单"项目|添加Windows窗体"菜单项,弹出对话框,添加一个窗体,修改formAbout 窗体属性StartPosition=CenterParent,修改属性MaximizeBox=False,MinimizeBox=False,属性FormBorderStyle=FixedDialog标题为“确定”按钮单击事件处理函数如下:private void button1_Click(object sender,EventArgs e)课程: C# Windows程序设计学年第_ _学期第周月日教学内容备注{ Close(); }为菜单增加顶级菜单项:帮助,为其弹出菜单增加标题为“关于…”的菜单项,属性Name为menuItemAbout。
菜单“帮助|关于…”菜单项单击事件处理函数如下:private void menuItemAbout_Click(object sender,EventArgs e){ formAbout AboutDialog=new formAbout();AboutDialog.ShowDialog(this);//打开模式对话框} //注意不能使用Show()函数,它打开非模式对话框5、文本编辑器查找替换功能首先介绍模式对话框和非模式对话框的概念。
并使用非模式对话框在文本编辑器中实现查找和替换功能。
(1)模式对话框和非模式对话框模式对话框和非模式对话框的区别是:…两类对话框本质上都是窗体,是Form类的派生类,只是打开时使用的方法不一样,打开模式对话框,使用方法ShowDialog(),而打开非模式对话框,使用方法Show()。
(2)查找替换功能的实现建立新窗体,窗体文件名称为formFindReplace.cs,作为"查找替换"对话框。
窗体类名也为formFindReplace,为formFindReplace类增加变量:Form1 MainForm1;属性StartPosition=CenterParent,MaximizeBox=False,MinimizeBox=False, FormBorderStyle=FixedDialog, Text=“查找和替换”修改formFindReplace类构造函数如下,增加的参数form1是主窗体属性Name的值。
public formFindReplace(Form1 form1){ InitializeComponent();MainForm1=form1;//新增语句,记录主窗体属性Name的值}//有了Form1引用,可以在formFindReplace类中调用Form1类的公有方法查找替换对话框中标题为“查找下一个”按钮单击事件函数如下:private void buttonFind_Click(object sender,EventArgs e){ if(textBox1.Text.Length!=0)//MainForm1.FindRichTextBoxString方法见后面定义课程: C# Windows程序设计学年第_ _学期第周月日教学内容备注MainForm1.FindRichTextBoxString(textBox1.Text);elseMessageBox.Show(“查找字符串不能为空”,"提示",MessageBoxButtons.OK);} //MessageBox是对话框查找替换对话框中标题为“替换查到字符”按钮单击事件函数如下:private void buttonReplace_Click(object sender,EventArgs e){ if(textBox2.Text.Length!=0)MainForm1.ReplaceRichTextBoxString(textBox2.Text);else // MainForm1.ReplaceRichTextBoxString后面定义MessageBox.Show(“替换字符串不能为空”,"提示", MessageBoxButtons.OK);}为Form1类增加变量:int FindPostion=0,该变量用来记录下一次查找的开始位置。