单 位 **** 分院(系)
专 业 ****
学 号 ****
学生姓名 *****
指导教师 ***
完成日期 ** 年 * 月* 日
摘 要
自今年开学以来,我一直在学校学习vb程序设计,在为期半年的学习时间中,经历了一些软件设计开发的实践,在这些设计中学到许多书本上不能体会到的知识,下面将要介绍的一个设计,就是我在上课程设计时学到的,从老师的课程要求从而确定设计要求、项目的具体设计到项目的具体代码实施,在这个项目设计阶段,主要由我和我所在组的成员完成,他们对vb有着不少的经验,另外老师在这次项目开发中对我们起到了指导性的作用,使得我钦佩不已,下面就详细的说一下我们开发的这个项目。 一.设计目的
自从接到我们要上课程设计课开始,我们知道word的文本编辑器,当然众所周知word是当今最流行最常用的文本编辑器,用来日常对工作生活中的文本进行编辑,它的功能强大,也在软件设计业成为了一种流行的标准。我们这次设计的就是以word的一些基本功能为基础,由于我们的能力有限我们把一些特殊功能删除了,只留下了一些简单的功能例如:剪切、新建、复制、粘贴、查找等。此次设计课主要是锻炼我们的vb设计能力和思维考虑能力使我们的vb 学习真正的用到实处,无论在将来工作还是学习有着重要作用
二设计要求、
本系统由两个菜单组成:文件、编辑,界面如图:
(1)文件菜单包括:新建、打开、保存、退出。
(2)编辑菜单包括:复制、剪贴、粘贴、字体设置。
要求:
1.1人完成
2. 利用菜单、工具栏实现上述功能。 应用控件名称:RichTextBox CommonDialog 6.0
目录
1.选题的意义 --------------------------------5
2.系统的功能能分 ---------------------------------------7
2.1 系统概述 ----------------------------------------------------------------7
2.2 系统的构成 -------------------------------------------------------------8
2.3系统的运行环境 ---------------------------------------------------------9
2.4设计思路-------------------------------------------------------------------9
3.主要控件功能介绍 ------------------------------------17
3.1 控件功能 ----------------------------------------------------------------17
3.2设计的代码 --------------------------------------------------------------21
4.总结--------------------------------------------------26
4.1总结-------------------------------------------------------------------------26
4.2 存在的主要问题----------------------------------------------------------26
参考文献-------------------------------------------------26
第一章 选题的意义
VB6.0全称为VisualBasic 6.0,是微软公司推出的可视化编程工具MSDN之一,是目前世界上使用最广泛的程序开发工具。如果你是一个对编程一无所知,而又迫切希望掌握一种快捷实用的编程语言的初学者,那选择VB 6.0没错的。即使考虑到VB程序本身编译和运行效率较低的不足(嘻嘻速度现在不是问题吧),单是它的快捷的开发速度,简单易学的语法,体贴便利的开发环境,它仍不失一款优秀的编程工具,是学习VB初学者的首选。也许你会问,我以前没学过任何一种语言,我能快速上手吗?别担心,没问题VB的语法的和QBASIB语言是基本相同的,也就是说它的语法是最容易被初学者所接受的。另外VB提供的是可视化的开发环境,我们可以象搭积木一样构建出程序的界面,而且VB提供了丰富的控件组,省去了我们自己写代码实现这些效果的麻烦,这样我们就能把更多的精力放在程序功能的实现上,所以VB学起来简单,用起来方便。接着看看VB语言的前景,在目前各种编程语言共存的时代,VB会不会落伍呢?当然不会了,在我写这篇文章的同时,微软已经透露了VB7.0将完全面向对象的消息,可以肯定下一代VB的功能一定会强大很多,我们这些所谓的 VB 程序员总算可以放心了,VB不会落后于时代,毕竟它是使用人数最多的优秀的开发工具。好了,侃了这么多关于VB的台前幕后,总之是为想学编程的你树立信心,编程一点都不难,只要你决定了开始,就让我们一起踏上愉快的编程之旅吧。接下来谈谈怎样学习VB,先说说“看实例学VB6.0”系列教程,它是面向编程初学者的VB入门教程,这个教程的特点是抛开晦涩难懂的概念和语法,不做内容上的堆积和罗列,而是采用了每节一个生动有趣的小例子的形式,每个小例子中会涉及到一个或几个VB编程的知识点(可能是控件,也许会是某个函数或编程小技巧),使你快速入门。希望你学完此教程后能达到下述的效果: 从对编程一窍不通或从未接触过编程的状态,通过学习能够对VB6.0的编程环境比较熟悉,掌握VB开发界面的使用方法;对VB语言的基本语法大致了解,知道常见的语句的意义;学习VB常用控件的使用方法,并能将它们灵活运用到应用程序中;能开发简单的VB程序。到那时你已经能够继续深入的学习VB编程,可以继续参与到程序设计栏目其他版块的学习中去,嘻嘻,目标就是这样啦。然后谈谈学习编程的方法,万事开头难,刚刚开始,遇到些困难没关系,慢慢来。编程是一个不断学习,不断积累的过程,编程的乐趣也正是存在于学习的过程中。我们每学一点,就赶快把它用到实际的程序中去,自己多学多用多实践,水平才能不断提高,这就是“学以致用”。另外,编程涉及到很多的知识,象操作系统的、软件工程的、硬件系统的以及编程思想等各个方面,这就需要我们多看看这方面的资料,扩充自己的知识面。还有如果学习过程中遇到了什么问题,或者有什么好的心得,你可以到洪恩的“网上交流”的“编程技术”版去提问求助或是发表文章,那里有许多编程高手可以为你答疑,还有许多同样的初学者一起交流。“求知无限”是网上学习的特点,如果你觉得自己能够更深的学习VB或是其他编程的知识时,“程序设计”栏目的其他版块将是理想的去处,希望我们能在这样的学习环境中不断进步。教程分为三个大的部分,它们是由浅入深的一个系列,分别是:一、熟悉一下VB6.0的编程环境二、学习VB常用控件的使用方法三、试着开发简单的VB应用程序,所以我们选择了小小的文本编器来丰富我们的知识。
第二章系统功能需求分析
2.1 系统概述
简介
文本编辑器(或称文字编辑器)是用作编写普通文字的应用软件,它与文档编辑器(或称文字处理器)不同之处在于它并非用作桌面排版(例如文档格式处理)。它常用来编写程序的源代码。
常见的有Linux下的vi、emacs、gedit、DOS下的edit、Windows下的记事本、写字板等等。
如何使用文本编辑器:开始/运行输入edit命令进入文本编辑器进行编辑文本;也可以在cmd下输入edit进入文本编辑器。文本编辑器类似c语言界面。是一种很实用的文本编辑软件。
典型功能
查找和替换
在一个文本文件中查找一个词或者一个字符串,把一个字符串替换成另一个字符串。可采取各种方式进行:全局查找替换、条件查找替换、无条件查找替换。
剪切、复制、粘贴
大多数文本编辑器都支持文件内的或者文件间的复制或者移动。
字体设置
大多数文本编辑器都有字体设置这一个功能
打开、保存、新建、
这也是文本编辑器的一个最简单的功能
2.2系统构成
只由有一个界面组成简单见图
2.3系统的运行环境
在装有vb程序的计算机中运行。
2.4设计思路
步骤一:绘制界面。
新建一个标准EXE工程,将其Caption属性改为“超级记事本”,点击Icon属性给它找个合适的Icon图标。单击菜单“工程”-“部件”,在弹出的“部件”对话框里找到Microsoft RichText Box 6.0和公共对话框Microsoft Common Dialog 6.0并选中它们,单击“确定”按钮。这时左边的工具栏上出现了我们刚才新添的两个控件了。在窗体上绘制RichText Box和Commn Dialog,其中RichText Box的大小和位置可不用理睬,我们将在代码中处理它,当然,有必要把它的ScrollBar属性设为2-rtfVertical,这样在打开和编辑文件时垂直滚动条才可用。
步骤二:编辑菜单。
按Ctrl+E调出菜单编辑器,我们来做如下几个菜单:
一.文件菜单:
文件(第一层) mnuFile
新建(第二层) mnuNew
打开(第二层) mnuOpen
保存(第二层) mnuSave
- (第二层) mnuFileSep (分隔线)
退出(第二层) mnuExit
二.编辑菜单:
编辑(第一层) mnuEdit
复制(第二层) mnuCopy
剪切(第二层) mnuCut
粘贴(第二层) mnuPaste
- (第二层) mnuEditSep (分隔线)
全选(第二层) mnuSelecAll
三.搜索菜单:
搜索(第一层) mnuSearch
查找(第二层) mnuFind
查找下一个(第二层) mnuFindOn
四.帮助菜单:
帮助(第一层) mnuHelp
使用说明(第二层) mnuUsage
关于(第二层) mnuAbout
(注:各菜单项的快捷键请自行设置)
好了,其它的菜单项以后再根据需要添加。现在进入:
步骤三:编写代码。
'声明查找变量
Dim sFind As String
'声明文件类型
Dim FileType, FiType As String
'初始化程序
Private Sub Form_Load()
'设置程序启动时的大小
Me.Height = 6000
Me.Width = 9000
End Sub
'设置编辑框的位置和大小
Private Sub Form_Resize()
On Error Resume Next '出错处理
RichTextBox1.Top=20
RichTextBox1.Left=20
RichTextBox1.Height = ScaleHeight-40
RichTextBox1.Width = ScaleWidth-40
End Sub
'新建文件
Private Sub mnuNew_Click()
RichTextBox1.Text = "" '清空文本框
FileName = "未命名"
Me.Caption = FileName
End Sub
'打开文件
Private Sub mnuOpen_Click()
CommonDialog1.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"
CommonDialog1.ShowOpen
RichTextBox1.Text = "" '清空文本框
FileName = CommonDialog1.FileName
RichTextBox1.LoadFile FileName
Me.Caption = "超级记事本:" & FileName
End Sub
'保存文件
Private Sub mnuSave_Click()
CommonDialog1.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"
CommonDialog1.ShowSave
FileType = CommonDialog1.FileTitle
FiType = LCase(Right(FileType, 3))
FileName = CommonDialog1.FileName
Select Case FiType
Case "txt"
RichTextBox1.SaveFile FileName, rtfText
Case "rtf"
RichTextBox1.SaveFile FileName, rtfRTF
Case "*.*"
RichTextBox1.SaveFile FileName
End Select
Me.Caption = "超级记事本:" & FileName
End Sub
'退出
Private Sub mnuExit_Click()
End
End Sub
'复制
Private Sub mnuCopy_Click()
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelText
End Sub
'剪切
Private Sub mnuCut_Click()
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelText
RichTextBox1.SelText = ""
End Sub
'全选RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.Text)
Private Sub mnuSelectAll_Click()
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.Text)
End Sub
'粘贴
Private Sub mnuPaste_Click()
RichTextBox1.SelText = Clipboard.GetText
End Sub
'查找
Private Sub mnuFind_Click()
sFind = InputBox("请输入要查找的字、词:", "查找内容", sFind)
RichTextBox1.Find sFind
End Sub
'继续查找
Private Sub mnuFindOn_Click()
RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1
RichTextBox1.Find sFind, , Len(RichTextBox1)
End Sub
'使用说明
Private Sub mnuReadme_Click()
On Error GoTo handler
RichTextBox1.LoadFile "Readme.txt", rtfText '请写好Readme.txt文件并存入程序所在文件夹中
Me.Caption = "超级记事本:" & "使用说明"
Exit Sub
handler:
MsgBox "使用说明文档可能已经被移除,请与作者联系。", vbOKOnly, " 错误信息"
End Sub
'关于
Private Sub mnuAbout_Click()
MsgBox "超级记事本 Ver1.0 版权所有(C) 20## 土人",vbOKOnly,"关于"
End Sub
'设置弹出式菜单(即在编辑框中单击鼠标右键时弹出的动态菜单)
Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu mnuEdit, vbPopupMenuLeftAlign
Else
Exit Sub
End If
End Sub
'防止在切换输入法时字体自变(感谢王必成先生提供此方案)
Private Sub RichTextBox1_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeySpace Then
RichTextBox1.SelFontName = CommonDialog1.FontName
End If
End Sub
至此,我们的记事本可以编译使用了。点击菜单“文件”-“生成XXX.EXE”,回到桌面运行我们的记事本看看,是不是颇有成就感?
当然,这样的记事本还比较粗糙,我们还需要做些工作,请看下一章。
第二章 美化程序界面
多数字处理软件都有工具栏和状态栏。工具栏和状态栏除了能美化我们的程序使其更具有专业性质外,还给用户带来操作上的便利。现在我们就来做一做这两样东西。
一.工具栏
(一)制作工具栏
单击“工程”-“部件”,选中Microsoft Windows Common Control 6.0并确定。这时,我们要用到的控件就出现在左边的工具栏上了。
要做工具栏,首先需要一个叫ImageList的控件来装载图像。在程序界面上添加它,然后右键单击此控件,左键单击“属性”,弹出“属性页”对话框的“图像”,再单击“插入图片”就可以一次性装载图片了(如不满意,以后还可以添加)。图片可在C:\Microsoft Visual Studio\Common\Graphics\Bitmaps\TlBr_W95下选择(这里假设你的VB安装在C盘下)。注意了:在插入图片时给每一张图片注明关键字,以便在引用图片时不至于混乱。如插入“新建”的图片,我们在“关键字”栏注明“New”。
图片有了,接下来在程序界面添加工具栏(ToolBar)。添加后工具栏就出现在菜单下面,右键单击它,选择“属性”,在弹出的“属性页”对话框中的“通用”项作些设置,主要如下两项:
1.“图像列表”:选择ImageList1
2.“样式”:根据喜爱选择1-trbStandard或者2-trbFlat
继续点击“属性页”的“按钮”选项,插入若干按钮。按钮有多种样式,请根据需要设置。这里请一定注意:每一个与用户操作有关的按钮都必须注明关键字、装载图片,如“新建”按钮,在“关键字”项注明“新建”,在“图像”项键入“New”(即ImageList1中的图片关键字),需要的话还可以在“工具提示文本”项填入适当的提示语。
(二)编写工具栏的按钮代码
工具栏按钮的代码编辑很简单,可以按照下面的格式去编写:
Private Sub ToolBar1_ButtonClick(ByVal Button As MSComctlLib.Button)
On Error Resume Next '出错处理
Select Case Button.Key '按关键字选择
Case "新建"
mnuNew_Click '等于菜单项“新建”被单击
Case "打开" '等于菜单项“打开”被单击
mnuOpen_Click
'......(继续编写其它按钮的代码)
End Select
End Sub
完成后试运行一下我们的程序,我们发现,有了工具栏之后,程序变得漂亮多了,只是有一个问题:打开一个较长的文档后,编辑框的下拉滚动条向上的箭头不见了。原因是:工具条占用一定的空间。解决方法:将“设置编辑框的位置和大小”中的RichTextBox1.Top = 20 和 RichTextBox1.Height = Me.ScaleHeight - 40分别改为RichTextBox1.Top = 380,RichTextBox1.Height = Me.ScaleHeight - 400即可。
二.状态栏
(一)制作状态栏
状态栏的英文名字叫StatusBar,在窗体上添加它后会默认出现在窗体的最下方。用鼠标右键点击它,调出“属性页”对话框,单击“窗格”项,插入一些窗格,可以将各个窗格的“样式”设置为:
0-sbrText 显示文本,需编写代码
1-sbrCaps 显示大小写状态,无需编程
2-sbrNum 显示NumLock键开关状态,无需编程
3-sbrIns 显示Insert键状态,无需编程
4-sbrScr1
5-sbrTime 显示时间,不编程时时间不会随系统时钟变化
6-sbrDate 显示日期,无需编程
注意:加进状态栏后需将Form_Resze中的RichTextBox1.Height = Me.ScaleHeight - 400改为RichTextBox1.Height = Me.ScaleHeight - 600。
(二)状态栏根据其“样式”属性决定用不用编写代码(如上文所述)。下面举些例子,读者可以认真揣摩,从而达到举一反三的效果。
例一:用户选取了“新建”后,让第一个窗格显示:“目前状态:正在打开文件《……》”。请将下面代码写进“打开”菜单里面:
StatusBar1.Panels(1).Text = "目前状态:正在打开文件" & "《" &CommonDialog1.FileTitle & "》"
例二:让第三个窗格显示时间并让时间跟随系统时钟变化。
首先,给程序加一个Timer控件,将其Interval属性设为1000。然后:
在Form_Load过程加入:StatusBar1.Panels(1).Text = Time;然后给Timer控件编写代码:
Private Sub Timer1_Timer()
If StatusBar1.Panels(3).Text <> CStr(Time) Then
StatusBar1.Panels(3).Text = Time
End If
End Sub
例三:当编辑框的文本发生变化时让第一个窗格显示:“正在编辑文档:文件名”。
Private Sub RichTextBox1_Chang()
StatusBar1.Panels(1).Text = "正在编辑文档:" & CommonDialog1.FileName
End Sub
第三章 主要控件功能介绍
3.1 控件功能
今天我们一起用RichTextBox控件来做一个文本编辑器,这个文本编辑器具有比较完备的功能,例如:查找字串、设置字体等。通过这个程序,我们可以看到RichTextBox控件丰富的使用方法。
图
程序中使用的RichTextBox控件在默认状态下不在控件面板中,我们可以在控件面板上点鼠标右键“添加”,在“添加选择对话框”中找到这个控件并添加。这时控件面板上会出现图标,这就是这个小程序的主打控件RichTextBox。
为了学习的方便,提供的源代码都提供了详细的中文注释,如下所示:
一个由RichTextBox实现的文本编辑器 '名称作用Form1 主窗体 ' CmdOpen 通用对话框 ' RichTextBox1 RichTextBox ' mnuNew “新建”菜单项 ' mnuOpen “打开”菜单项 ' mnuSave “保存”菜单项 ' mnuExit “退出”菜单项 ' mnuFont “字体”菜单项 ' mnuPrint “打印”菜单项 ' mnuFind “查找”菜单项 ' mnuNext “查找下一个”菜单项 变量作' sFind 待查找的字符串 ' Option Explicit Public sFind As String Private Sub Form_Resize() '如果窗体不处于最小化RichTextBox1状态,改变RichTextBox1大小以适应窗体大小变化 If Form1.WindowState <> 1 Then RichTextBox1.Width = Form1.Width - 135 If Form1.Height < 1200 Then Form1.Height = 1200 End If RichTextBox1.Height = Form1.Height - 675 End If End Sub '当“退出”菜单项被点击时 Private Sub mnuExit_Click() Unload Me End End Sub '当“查找”菜单项被点击时 Private Sub mnuFind_Click() 'InputBox("弹出的输入框的标题",[默认值], [返回的值]) '语法:InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context]) sFind = InputBox("Find what?", , sFind) 'RichTextBox1.Find 是一个方法,根据给定的字符串,在 RichTextBox 控件中搜索文本 RichTextBox1.Find sFind End Sub '当“字体”菜单项被点击时 Private Sub mnuFont_Click() '显示“字体”对话框 '使用指定的方法,CommonDialog 控件能够显示下列对话。 '---------------------------------------- '方法 所显示的对话框 '---------------------------------------- 'ShowOpen 显示“打开”对话框 'ShowSave 显示“另存为”对话框 'ShowColor 显示“颜色”对话框 'ShowFont 显示“字体”对话框 'ShowPrinter 显示“打印”或“打印选项”对话框 'ShowHelp 调用 Windows 帮助引擎 CmdOpen.Flags = cdlCFBoth + cdlCFEffects CmdOpen.ShowFont '将RichTextBox1的属性根据“字体”对话框的变化作相应设置 '要改变 RichTextBox 控件中的字体特性,可以使用 'SelFontName、SelFontSize 和 SelFontColor 属性。With RichTextBox1 .SelFontName = CmdOpen.FontName .SelFontSize = CmdOpen.FontSize .SelBold = CmdOpen.FontBold .SelItalic = CmdOpen.FontItalic .SelStrikeThru = CmdOpen.FontStrikethru .SelUnderline = CmdOpen.FontUnderline End With End Sub '当“新建”菜单项被点击时,设置为空 Private Sub mnuNew_Click() RichTextBox1.Text = "" End Sub '当“查找下一个”菜单项被点击时 Private Sub mnuNext_Click() 'SelStart属性-返回或设置所选择的文本的起始点;如果没有文本被选中,则指出插入点的位置。 RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1 'object.Find(string, start, end, options) '------------------------------------------ 'Find 方法的语法包含下面部分: '部分 描述 '----------------------------------------- 'object 必需的。对象表达式,其值是“应用于”列表中的一个对象。 'string 必需的。要在控件中查找的字符串表达式。 'start 可选的。决定从哪儿开始搜索的整数字符索引。控件中的每一个字符都有一个可唯一标识的整数索引。控件中文本的第一个字符的索引是 0。 'end 可选的。决定在哪儿结束搜索的整数字符索引。 'options 可选的。用来指定一个或多个可选功能常数的和。所指定的功能如“设置值”中所述。 '----------------------------------------- RichTextBox1.Find sFind, , Len(RichTextBox1) End Sub '当“打开”菜单项被点击时 Private Sub mnuOpen_Click() '参看上面CommonDialog方法 CmdOpen.ShowOpen 'RichTextBox的LoadFile方法 RichTextBox1.LoadFile (CmdOpen.FileName) End Sub '当“打印”菜单项被点击时 Private Sub mnuPrint_Click() CmdOpen.Flags = cdlPDReturnDC + cdlPDNoPageNums If RichTextBox1.SelLength = 0 Then CmdOpen.Flags = CmdOpen.Flags + cdlPDAllPages Else CmdOpen.Flags = CmdOpen.Flags + cdlPDSelection End If '参看上面CommonDialog方法 CmdOpen.ShowPrinter '将 RichTextBox 控件中格式化文本发送给设备进行打印。 '语法 'object.SelPrint (hDC) 'SelPrint 方法的语法包含下面部分: '部分 描述 '----------------------------------------------- 'object 对象表达式,其值是“应用于”列表中的一个对象。 'hdc 设备描述体,是准备用来打印控件内容的设备。 '----------------------------------------------- RichTextBox1.SelPrint CmdOpen.hDC End Sub '当“保存”菜单项被点击时 Private Sub mnuSave_Click() CmdOpen.ShowSave 'RichTextBox的SaveFile方法,保存文本 RichTextBox1.SaveFile (CmdOpen.FileName) End Sub
下面我们来看看RichTextBox控件的常用的属性、事件和方法。
RichTextBox 控件可用于输入和编辑文本,它同时提供了比常规的TextBox控件更高级的格式特性。 通过这些属性,可对该控件中任何部分的文本使用不同的格式,可以将文本变为粗体或斜体,改变文本的颜色,创建上标或下标,可以调整段落的左右缩进值,还可以使用悬挂式缩进等。而且RichTextBox控件支持大于64K的文本,这些都是TextBox控件所不可比拟的。
RichTextBox 控件的主要属性有:
SelFontName、SelFontSize 和 SelFontColor,它们用来设置文字的字体、大小和颜色。使用的语法是:
object.SelColor [= color] 需要注意的是,这个属性改变的是选中文字的属性,而不是所有的文字,这样我们可以在编辑框内出现不同的字体、颜色等。
●另外程序中还用到了SelLength属性-返回或设置所选择的字符数。SelStart属性-返回或设置所选择的文本的起始点;如果没有文本被选中,则指出插入点的位置。 RichTextBox控件的主要方法有:
●LoadFile方法和SaveFile方法:它们的作用分别是从文件中导入文本和保存文本到指定的文件,这两个方法支持txt和rtf格式的文本文件,使用的语法是:
object.SaveFile(pathname, filetype) 其中pathname是要打开或保存的文件路径,filetype是要打开或保存的文件类型(0表示txt文件;1表示rtf格式的文件)。
●Find方法:其语法是:object.Find(string, start, end, options)
其中string是要查找的字符串;start, end是查找开始和结束的位置,如果不指定的话默认是在全部文本中查找;options是查找时匹配的模式,有三种选择,rtfWholeWord为整个单词匹配而不是单词片段,rtfMatchCase为是否忽略字体的差别,rtfNoHighlight为找到的单词是否高亮显示。
●SelPrint方法:将RichTextBox控件中格式化文本发送给设备进行打印,使用的语法为:object.SelPrint(hdc),hdc为准备用来打印控件内容的设备的句柄。
以上的方法和属性只是RichTextBox控件丰富用法的
3.2 设计的代码
Dim sfind As String
Dim fileType, fitype As String
Private Sub Form_Load()
Me.Height = 6000
Me.Width = 9000
End Sub
Private Sub Form_Resize()
On Error Resume Next '出错处理
RichTextBox1.Top = 600
RichTextBox1.Left = 20
RichTextBox1.Height = ScaleHeight - 300
RichTextBox1.Width = ScaleWidth - 40
End Sub
Private Sub mnuFont_Click()
'当“字体”菜单项被点击时
'显示“字体”对话框
'使用指定的方法,CommonDialog 控件能够显示下列对话。
'----------------------------------------
'方法 所显示的对话框
'----------------------------------------
'ShowOpen 显示“打开”对话框
'ShowSave 显示“另存为”对话框
'ShowColor 显示“颜色”对话框
'ShowFont 显示“字体”对话框
'ShowPrinter 显示“打印”或“打印选项”对话框
'ShowHelp 调用 Windows 帮助引擎
'----------------------------------------
CommonDialog1.Flags = cdlCFBoth + cdlCFEffects
CommonDialog1.ShowFont
'将RichTextBox1的属性根据“字体”对话框的变化作相应设置
'----------------------------------------
'要改变 RichTextBox 控件中的字体特性,可以使用
'SelFontName、SelFontSize 和 SelFontColor 属性。
'----------------------------------------
With RichTextBox1
.SelFontName = CommonDialog1.FontName
.SelFontSize = CommonDialog1.FontSize
.SelBold = CommonDialog1.FontBold
.SelItalic = CommonDialog1.FontItalic
.SelStrikeThru = CommonDialog1.FontStrikethru
.SelUnderline = CommonDialog1.FontUnderline
End With
End Sub
Private Sub mnuNew_Click()
RichTextBox1.Text = "" '清空文本框
FileName = "未命名"
Me.Caption = FileName
End Sub
'打开文件
Private Sub mnuOpen_Click()
CommonDialog1.Filter = "文本文档(*.txt)│*.txt│RTF文档(*.rtf)│*.rtf│所有文件(*.*)│*.*"
CommonDialog1.ShowOpen
RichTextBox1.Text = "" '清空文本框
FileName = CommonDialog1.FileName
RichTextBox1.LoadFile FileName
Me.Caption = "超级记事本:" & FileName
End Sub
'保存文件
Private Sub mnuSave_Click()
CommonDialog1.Filter = "文本文档(*.txt)│*.txt│RTF文档(*.rtf)│*.rtf│所有文件(*.*)│*.*"
CommonDialog1.ShowSave
fileType = CommonDialog1.FileTitle
fitype = LCase(Right(fileType, 3))
FileName = CommonDialog1.FileName
Select Case fitype
Case "txt"
RichTextBox1.SaveFile FileName, rtfText
Case "rtf"
RichTextBox1.SaveFile FileName, rtfRTF
Case "*.*"
RichTextBox1.SaveFile FileName
End Select
Me.Caption = "超级记事本:" & FileName
End Sub
'退出
Private Sub mnuExit_Click()
End
End Sub
'复制
Private Sub mnuCopy_Click()
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelText
End Sub
'剪切
Private Sub mnuCut_Click()
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelText
RichTextBox1.SelText = ""
End Sub
'全选
Private Sub mnuSelectAll_Click()
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.Text)
End Sub
'粘贴
Private Sub mnuPaste_Click()
RichTextBox1.SelText = Clipboard.GetText
End Sub
'查找
Private Sub mnuFind_Click()
sfind = InputBox("请输入要查找的字、词:", "查找内容", sfind)
RichTextBox1.Find sfind
End Sub
'继续查找
Private Sub mnuFindOn_Click()
RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1
RichTextBox1.Find sfind, , Len(RichTextBox1)
End Sub
'设置弹出式菜单(即在编辑框中单击鼠标右键时弹出的动态菜单)
Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu mnuedit, vbPopupMenuLeftAlign
Else
Exit Sub
End If
End Sub
'防止在切换输入法时字体自变
Private Sub RichTextBox1_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeySpace Then
RichTextBox1.SelFontName = CommonDialog1.FontName
End If
End Sub
Private Sub ToolBar1_ButtonClick(ByVal Button As MSComctlLib.Button)
On Error Resume Next '出错处理
Select Case Button.Key '按关键字选择
Case "新建"
mnuNew_Click '等于菜单项“新建”被单击
Case "打开" '等于菜单项“打开”被单击
mnuOpen_Click
Case "保存" '等于菜单项“打开”被单击
mnuSave_Click
Case "复制" '等于菜单项“打开”被单击
mnuCopy_Click
Case "剪切" '等于菜单项“打开”被单击
mnuCut_Click
Case "查找" '等于菜单项“打开”被单击
mnuFind_Click
End Select
End Sub
Private Sub RichTextBox1_Chang()
StatusBar1.Panels(1).Text = "正在编辑文档:" & CommonDialog1.FileName
End Sub
第四章 总结
4.1总结
通过这次作题我明白了许多 vb 的知识和运用。
4.2系统存在的问题
主要存在的问题是查找的应用和替换的应用
第五章 参考文献
Vb课程设计---------------------------------------铁道大学