程序界面设计
本节通过一个“个人记事本 ”程序,来学习VB的菜单、对话框和工具栏标准的使用。程序运行界面及设计视图见图9-01,9-02。
|
|
★要掌握的知识点及操作
- 菜单的设置与使用
- 对话框的设置与使用(包括消息对话框MsgBox()、输入框InputBox()和公共对话框)
- 工具栏(Toolbar控件)的设置与使用
- 图像列表(ImagesList)控件的设置与使用
- 增强型文本框(RichTextBox控件)的使用
★程序设计
本程序包括1个菜单、1个增强型文本框(RichTextBox)控件、1个公共对话框(Common Dialog)控件、1个工具栏(Toolbar)控件和1个图像列表(ImagesList)控件。见图9-02。
一、在窗体中设置菜单
菜单分两种基本类型:下拉式菜单和弹出式菜单,都是通过菜单编辑器进行设置的。单击工具菜单编辑器,可打开如图9-04所示的菜单编辑器。
图9-04 菜单编辑器
设置本例的菜单,见图9-05及表。
图9-05 本例的菜单
菜单项标题
|
菜单项名称
|
快捷键方式
|
菜单项功能
|
备注
|
文件(&F) | File | 一级菜单(菜单栏标题) | ||
新建 | New | Ctrl+N | 创建一新文件 | |
打开 | Open | Ctrl+O | 打开一文件 | |
保存 | Save | Ctrl+S | 保存文件 | |
- | sp1 | 分隔符,给菜单分组 | ||
退出 | Exit | 退出程序 | ||
编辑(&E) | Edit | 一级菜单(菜单栏标题) | ||
复制 | Copy | 拷贝文本内容 | ||
剪切 | Cut | 剪切文本内容 | ||
粘贴 | Paste | 粘贴文本内容 | ||
- | sp2 | 分隔符,给菜单分组 | ||
全选 | All | 选定所有内容 | ||
- | sp3 | 分隔符,给菜单分组 | ||
查找 | Find | 查找指定内容 | ||
查找下一个 | FindOn | 继续查找下一个指定内容 | ||
格式(&O) | Format | 一级菜单(菜单栏标题) | ||
颜色 | Color | 设置文本颜色 | ||
字体 | Font | 设置文本字休 | ||
帮助(&H) | Help | 一级菜单(菜单栏标题) | ||
显示/隐藏工具栏 | Show1 | 显示/隐藏程序工具栏 | 选定“复选” | |
关于 | About | 显示程序版本信息 |
表9-01 各菜单项属性设置
每项菜单项可以看作是一个控件,菜单项名称即是控件名称,在程序代码中可通过名称来调用该菜单项,而单击该菜单项将激活菜单项的Click事件。
二、添加增强型文本框(RichTextBox)控件 — Rtb
RichTextBox控件是增强型文本框,具有标准TextBox控件的所有功能,还支持直接打开和保存文本文件等。它是一个附加的控件,可通过在“部件”列表框中选择“Microsoft Rich TextBox Control 6.0”选项,则控件工具箱中就多了一个RichTextBox控件。再将其添加到窗体中。
三、添加公共对话框(Common Dialog)控件 — ComDia
Common Dialog控件是一个公共对话框,可以利用公共对话框在窗体上创建6种基于Windows的标准对话框:打开(Open)、另存为(Save)、颜色(Color)、字体(Font)、打印机(Printer)和帮助(Help)对话框。Common Dialog控件是一个附加的控件,可通过在“部件”列表框中选择“Microsoft Commom Dialog Control”选项,则控件工具箱中就多了一个Common Dialog控件。再双击将其添加到窗体中。
要设置公共对话框的属性,在窗体中选择Common Dialog控件,单击右键打开快捷菜单列表选择“属性”,打开如图9-06所示的公共对话框属性页进行设置。
图9-06 公共对话框属性页
要调用某种标准对话框,可通过公共对话框控件的Show方法来调用。如要打开“打开”对话框,可通过代码ComDia.ShowOpen来调用。
四、工具栏(Toolbar)控件和图像列表(ImagesList)控件 — Toolbar1,ImageList1
Toolbar控件是图形化的命令按钮集合,用于在窗体中创建工具栏;而ImagesList控件用于保存和管理工具栏中工具按钮上的图片。Toolbar控件和ImagesList控件也是附加的控件,可通过在“部件”列表框中选择“Microsoft Windows Commom Control”选项,则控件工具箱中就多了一组控件,其中就有Toolbar控件和ImagesList控件。再双单将它们分别添加到窗体中。
要设置工具栏和工具按钮的图像,在窗体中分别选择Toolbar对象和ImagesList对象,单击右键打开快捷菜单列表选择“属性”,打开如图9-07、图9-08所示的工具栏属性页进行设置。
图9-07 工具栏属性页
图9-08 图像列表属性页
程序代码如下:
Option Explicit Dim Findstr As String '声明查找变量 Dim FileTypestr, FiTypestr As String '声明文件类型变量 Dim FileName As String '声明文件名称变量 '当单击菜单项命令“关于”时,弹了出消息框 Private Sub About_Click() '关于本程序的信息 MsgBox "个人记事本 1.0 ", vbOKOnly, "关于" End Sub Private Sub All_Click() Rtb.SelStart = 0 '设置文本的起始点 Rtb.SelLength = Len(Rtb.Text) '根据文本的全部字符数长度设置所选择的字符数 End Sub Private Sub Copy_Click() Clipboard.Clear '清除剪贴板(Clipboard)的内容 Clipboard.SetText Rtb.SelText '将所选择的文本放到剪贴板上 End Sub Private Sub Cut_Click() Clipboard.Clear '清除剪贴板的内容 Clipboard.SetText Rtb.SelText '将所选择的文本放到剪贴板上 Rtb.SelText = "" '清除文本中的内容 End Sub Private Sub Exit_Click() End End Sub Private Sub Find_Click() '用输入框来输入查询条件,并将输入内容赋值给查找变量Findstr Findstr = InputBox("请输入要查找的字、词:", "查找内容", Findstr) Rtb.Find Findstr '根据给定的字符串,使用方法Find来搜索文本 End Sub Private Sub FindOn_Click() Rtb.SelStart = Rtb.SelStart + Rtb.SelLength + 1 '设置下一个搜索的开始为置 '根据给定的字符串,搜索文本,并从指定的开始位置搜索的文本的末尾 Rtb.Find Findstr, , Len(Rtb) End Sub Private Sub Font_Click() ComDia.Flags = 1 '打开标准对话框ComDia的Flags属性值 ComDia.ShowFont '打开标准字体对话框 Rtb.SelFontName = ComDia.FontName '根据在标准字体对话框中所选确定字体(字体类型、大小、粗斜) Rtb.SelFontSize = ComDia.FontSize Rtb.SelBold = ComDia.FontBold Rtb.SelItalic = ComDia.FontItalic End Sub Private Sub Color_Click() ComDia.ShowColor '打开标准颜色对话框 Rtb.SelColor = ComDia.Color '根据在标准颜色对话框中所选确定颜色 End Sub Private Sub New_Click() Rtb.Text = "" '清空文本框 FileName = "新建个人记事本" '设置窗体的标题 Me.Caption = FileName End Sub Private Sub Open_Click() '设置对话框的显示文件类型 ComDia.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*" ComDia.ShowOpen '显示 ComDia控件的"打开"对话框 Rtb.Text = "" '清空文本框 FileName = ComDia.FileName '将选择文件的文件名赋值给文件名称变量FileName Rtb.LoadFile FileName '加载一个文件名为FileName的文件 Me.Caption = "个人记事本:" & FileName '设置窗体的标题 End Sub Private Sub Paste_Click() Rtb.SelText = Clipboard.GetText '将剪贴板上的内容粘贴到文本框中 End Sub Private Sub Save_Click() '设置对话框的保存文件类型 ComDia.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*" ComDia.ShowSave '显示 ComDia控件的"保存"对话框 FileTypestr = ComDia.FileTitle '返回对话框保存文件的名称,并赋值给文件类型变量FileTypestr FiTypestr = LCase(Right(FileTypestr, 3)) '提取文件类型 FileName = ComDia.FileName '返回保存的文件名 '保存为纯文本文档 If FiTypestr = "txt" Then Rtb.SaveFile FileName, rtfText End If '保存为RTF文档,RTF文档能保存字体等格式 If FiTypestr = "rtf" Then Rtb.SaveFile FileName, rtfRTF End If '保存为所有文件 If FiTypestr = "*.*" Then Rtb.SaveFile FileName End If Me.Caption = "个人记事本:" & FileName '设置窗体的标题 End Sub '点击鼠标右键出现弹出菜单 Private Sub rtb_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu Edit '把编辑菜单显示为弹出菜单 Else Exit Sub End If End Sub '当单击菜单命令“显示/隐藏工具栏”时,首先判断当前命令是否是选中状态 '如果是选中状态,则取消选中状态,隐藏工具栏;否则相反 Private Sub Show1_Click() If Show1.Checked = True Then Show1.Checked = False '将菜单命令Show1的Checked属性设为False,取消选中 Toolbar1.Visible = False '将工具栏Toolbar1的Visible属性设为False,隐藏工具栏 Else Show1.Checked = True Toolbar1.Visible = True End If End Sub '当工具栏上的按钮被按下时,执行Toolbar1_ButtonClick事件过程 '该过程判断哪一个工具按钮被按下,调用相应的事件过程来执行命令 Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case "t1" New_Click '调用菜单命令New的Click()过程 Case "t2" Open_Click Case "t3" Save_Click Case "t4" Copy_Click Case "t5" Cut_Click Case "t6" Paste_Click End Select End Sub |
★小结
菜单
下拉式菜单是窗口顶部显示的菜单,弹出式菜单指用户在特定位置单击鼠标右键是弹出快捷菜单。不论是下拉式菜单还是弹出式菜单,都是在菜单编辑器进行设置的。不同之处在于弹出式菜单项常被设置为隐藏(即 Visible属性为 False)。在单击右键时通过PopupMenu方法显示出来(此方法对可见的下拉式菜单同样有效)。语句如下:
[窗体名.]PopupMenu 菜单名 [,Flags[,x[,y[,boldcommand]]]]
除分隔符_菜单项外,所有的菜单项都可以接受Click事件。
对话框
VB中对话框主要有两种,一种是公共对话框,一种是预定义对话框,如图9-09所示。公共对话框指基于Windows的一组标准对话框,要使用此公共对话框,需要在窗体中插入Common Dialog控件,通过Show方法调用对话框。而预定义对话框又分输入框(InputBox函数)和信息对话框(MsgBox函数),其格式为:
变量=InputBox(信息内容[,对话框标题][,文本框缺省值]) 或 InputBox 信息内容[,对话框标题][,文本框缺省值]
变量=MsgBox (信息内容[,对话框类型[,对话框标题]]) 或 MsgBox 信息内容[,对话框类型[,对话框标题]]
图9-09 输入框(InputBox)和信息对话框(MsgBox)