用VB做文本编辑器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
'全选 Private Sub mnuSelectAll_Click() RichTextBox1.SelStart = 0 RichTextBox1.SelLength = Len(RichTextBox1.Text) End Sub
'粘贴 Private Sub mnuPaste_Click() RichTextBox1.SelText = Clipboard.GetText End Sub
意思就是做个记事本吧 看下面的 用 VB 做一个记事本实在不很复杂,我们完全可以通过向导来很方便地做出来。但本文只打算 讨论用手动方法制作记事本,旨在向 VB 初学者展示:学 VB 原来是如此容易! 通过阅读、研究本文并按本文所述进行尝试,初学者将学到很多东西,如怎样使用 RichText 控件来打开和保存文件,怎样制作菜单、工具栏和状态栏以及如何对其编写代码等。
步骤二:编辑菜单。 按 Ctrl+E 调出菜单编辑器,我们来做如下几个菜单: 一.文件菜单: 文件(第一层) mnuFile 新建(第二层) mnuNew 打开(第二层) mnuOpen 保存(第二层) mnuSave - (第二层) mnuFileSep (分隔线) 退出(第二层) mnuExit 二.编辑菜单: 编辑(第一层) mnuEdit 复制(第二层) mnuCopy 剪切(第二层) mnuCut 粘贴(第二层) mnuPaste - (第二层) mnuEditSep (分隔线) 全选(第二层) mnuSelecAll 三.搜索菜单: 搜索(第一层) mnuSearch 查找(第二层) mnuFind 查找下一个(第二层) mnuFindOn 四.帮助菜单: 帮助(第一层) mnuHelp 使用说明(第二层) mnuUsage 关于(第二层) mnuAbout (注:各菜单项的快捷键请自行设置)
至此,我们的记事本可以编译使用了。点击菜单“文件”-“生成 XXX.EXE”,回到桌面运行 我们的记事本看看,是不是颇有成就感? 当然,这样的记事本还比较粗糙,我们还需要做些工作,请看下一章。
第二章 美化程序界面
多数字处理软件都有工具栏和状态栏。工具栏和状态栏除了能美化我们的程序使其更具有专 业性质外,还给用户带来操作上的便利。现在我们就来做一做这两样东西。
第一章 让我们的记事本马上运行
急于求成是初学者共有的心愿。那好,请按如下三个步骤做,我们的愿望立即就可以实现!
步骤一:绘制界面。 新建一个标准 EXE 工程,将其 Caption 属性改为“超级记事本”,点击 Icon 属性给它找个合 适的 Icon 图标。单击菜单“工程”“- 部件”,在弹出的“部件”对话框里找到 Microsoft RichText Box 6.0 和公共对话框 Microsoft Common Dialog 6.0 并选中它们,单击“确定”按钮。这 时左边的工具栏上出现了我们刚才新添的两个控件了。在窗体上绘制 RichText Box 和 Commn Dialog,其中 RichText Box 的大小和位置可不用理睬,我们将在代码中处理它,当然,有必 要把它的 ScrollBar 属性设为 2-ቤተ መጻሕፍቲ ባይዱtfVertical,这样在打开和编辑文件时垂直滚动条才可用。
'新建文件 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
End Select End Sub
完成后试运行一下我们的程序,我们发现,有了工具栏之后,程序变得漂亮多了,只是有一 个问题:打开一个较长的文档后,编辑框的下拉滚动条向上的箭头不见了。原因是:工具条 占用一定的空间。解决方法:将“设置编辑框的位置和大小”中的 RichTextBox1.Top = 20 和 RichTextBox1.Height = Me.ScaleHeight - 40 分 别 改 为 RichTextBox1.Top = 380 , RichTextBox1.Height = Me.ScaleHeight - 400 即可。
'设置编辑框的位置和大小 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 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 mnuAbout_Click() MsgBox "超级记事本 Ver1.0 版权所有(C) 2001 土人",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
一.工具栏 (一)制作工具栏 单击“工程”-“部件”,选中 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 '......(继续编写其它按钮的代码)
好了,其它的菜单项以后再根据需要添加。现在进入:
步骤三:编写代码。
'声明查找变量 Dim sFind As String '声明文件类型 Dim FileType, FiType As String
'初始化程序 Private Sub Form_Load() '设置程序启动时的大小 Me.Height = 6000 Me.Width = 9000 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 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_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeySpace Then RichTextBox1.SelFontName = CommonDialog1.FontName End If 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 mnuPaste_Click() RichTextBox1.SelText = Clipboard.GetText End Sub
意思就是做个记事本吧 看下面的 用 VB 做一个记事本实在不很复杂,我们完全可以通过向导来很方便地做出来。但本文只打算 讨论用手动方法制作记事本,旨在向 VB 初学者展示:学 VB 原来是如此容易! 通过阅读、研究本文并按本文所述进行尝试,初学者将学到很多东西,如怎样使用 RichText 控件来打开和保存文件,怎样制作菜单、工具栏和状态栏以及如何对其编写代码等。
步骤二:编辑菜单。 按 Ctrl+E 调出菜单编辑器,我们来做如下几个菜单: 一.文件菜单: 文件(第一层) mnuFile 新建(第二层) mnuNew 打开(第二层) mnuOpen 保存(第二层) mnuSave - (第二层) mnuFileSep (分隔线) 退出(第二层) mnuExit 二.编辑菜单: 编辑(第一层) mnuEdit 复制(第二层) mnuCopy 剪切(第二层) mnuCut 粘贴(第二层) mnuPaste - (第二层) mnuEditSep (分隔线) 全选(第二层) mnuSelecAll 三.搜索菜单: 搜索(第一层) mnuSearch 查找(第二层) mnuFind 查找下一个(第二层) mnuFindOn 四.帮助菜单: 帮助(第一层) mnuHelp 使用说明(第二层) mnuUsage 关于(第二层) mnuAbout (注:各菜单项的快捷键请自行设置)
至此,我们的记事本可以编译使用了。点击菜单“文件”-“生成 XXX.EXE”,回到桌面运行 我们的记事本看看,是不是颇有成就感? 当然,这样的记事本还比较粗糙,我们还需要做些工作,请看下一章。
第二章 美化程序界面
多数字处理软件都有工具栏和状态栏。工具栏和状态栏除了能美化我们的程序使其更具有专 业性质外,还给用户带来操作上的便利。现在我们就来做一做这两样东西。
第一章 让我们的记事本马上运行
急于求成是初学者共有的心愿。那好,请按如下三个步骤做,我们的愿望立即就可以实现!
步骤一:绘制界面。 新建一个标准 EXE 工程,将其 Caption 属性改为“超级记事本”,点击 Icon 属性给它找个合 适的 Icon 图标。单击菜单“工程”“- 部件”,在弹出的“部件”对话框里找到 Microsoft RichText Box 6.0 和公共对话框 Microsoft Common Dialog 6.0 并选中它们,单击“确定”按钮。这 时左边的工具栏上出现了我们刚才新添的两个控件了。在窗体上绘制 RichText Box 和 Commn Dialog,其中 RichText Box 的大小和位置可不用理睬,我们将在代码中处理它,当然,有必 要把它的 ScrollBar 属性设为 2-ቤተ መጻሕፍቲ ባይዱtfVertical,这样在打开和编辑文件时垂直滚动条才可用。
'新建文件 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
End Select End Sub
完成后试运行一下我们的程序,我们发现,有了工具栏之后,程序变得漂亮多了,只是有一 个问题:打开一个较长的文档后,编辑框的下拉滚动条向上的箭头不见了。原因是:工具条 占用一定的空间。解决方法:将“设置编辑框的位置和大小”中的 RichTextBox1.Top = 20 和 RichTextBox1.Height = Me.ScaleHeight - 40 分 别 改 为 RichTextBox1.Top = 380 , RichTextBox1.Height = Me.ScaleHeight - 400 即可。
'设置编辑框的位置和大小 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 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 mnuAbout_Click() MsgBox "超级记事本 Ver1.0 版权所有(C) 2001 土人",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
一.工具栏 (一)制作工具栏 单击“工程”-“部件”,选中 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 '......(继续编写其它按钮的代码)
好了,其它的菜单项以后再根据需要添加。现在进入:
步骤三:编写代码。
'声明查找变量 Dim sFind As String '声明文件类型 Dim FileType, FiType As String
'初始化程序 Private Sub Form_Load() '设置程序启动时的大小 Me.Height = 6000 Me.Width = 9000 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 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_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeySpace Then RichTextBox1.SelFontName = CommonDialog1.FontName End If 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