1、第7章 用户界面设计 第第7章章 用户界面设计用户界面设计 7.1 常用标准控件常用标准控件 7.2 菜单设计菜单设计 7.3 通用对话框通用对话框 7.4 工具栏工具栏7.5 综合应用综合应用 7.1 常用标准控件常用标准控件7.1.1 单选按钮、复选框和框架单选按钮、复选框和框架7.1.2 列表框和组合框列表框和组合框7.1.3 滚动条滚动条7.1.4 定时器定时器7.1.5 图片框和图像框图片框和图像框7.1.1 单选按钮、复选框和框架单选按钮、复选框和框架1单选按钮2复选框 3框架1单选按钮单选按钮也称为选择按钮,一般都是成组出现,一组单选按钮控件可以提供一组彼此互相排斥的选项,实现一
2、种“单项选择”的功能。单选按钮的常用事件为Click。单选按钮常用属性(1)Caption属性。用于设置单选按钮上显示的标题。Alignment属性。用于设置单选按钮标题的对齐方式,可以在设计时设置,也可以在运行期间设置。其取值0(默认值)表示控件钮在左边,标题显示在右边;其取值1表示控件钮在右边,标题显示在左边。Value 属性。默认属性,其值为逻辑类型,表示单选按钮的状态,可以在设计时设置,也可以在运行期间设置。其取值True表示单选钮被选定;其取值False(默认值)表示单选钮未被选定。Style 属性。用来指定单选按钮的显示方式,用于改善视觉效果。其取值0(默认值)表示标准方式;其取值
3、1表示图形方式。当该属性设置为1(Graphical)时,可以在Picture、DownPicture和Disabled Picture中分别设置不同的图标或位图,用三种不同的图形分别表示未选定、选定和禁止选择。单选按钮常用属性(2)Picture属性。用来返回或设置未选定控件时的图片。可以在设计时设置,也可以在运行期间通过LoadPicture函数设置。如果Caption属性有值,则同时显示图片和文字;如果图片太大,则自动剪裁。DownPicture属性。用来返回或设置选定控件时的图片。如果该属性为空,则按钮被按下时,只显示Picture属性指定的图片;如果Picture属性和Disable
4、d Picture属性为空,则只显示文字。Disabled Picture属性。用来返回或设置禁止选择时的图片,即控件的Enabled属性为False时控件的图片。例7.1 设计一个窗体,模拟单选题测试。Private Sub Command1_Click()If Option2.Value=True Then MsgBox 恭喜,你答对了 Else MsgBox 真遗憾,你选错了 End IfEnd SubPrivate Sub Form_Load()Option1.Value=False Option2.Value=False Option3.Value=False Option4.Val
5、ue=FalseEnd Sub 2复选框复选框主要用于对某种或几种状态进行开关选择。复选框列出可供用户选择的选项,用户根据需要选定其中的一项或多项。复选框的常用属性:Caption属性。Caption属性是用来设置复选框上显示的文本。Value属性。Value属性是默认属性,其值为整型,表示复选框的状态。其取值0 vbUnchecked表示未被选定,是默认值;其取值1 vbChecked表示被选定;其取值2 vbGrayed表示灰色,禁止用户选择。复选框的常用事件为Click。例7.2 设计一个窗体,模拟多项选择题测试。Private Sub Command1_Click()If Check1
6、.Value=1 And Check3.Value=1 And Check2.Value=0 And _ Check4.Value=0 Then MsgBox 恭喜,你选对了!Else MsgBox 很遗憾,你选错了!End IfEnd Sub3框架框架是一个容器控件,用于将屏幕上的对象分组。主要用于单选按钮分组。在窗体上创建框架及其内部控件时,必须先建立框架,然后在其中建立各种控件。框架的常用属性:Caption属性。用来设置框架上的标题名称。如果Caption为空字符,则框架为封闭的矩形框,但框架内的控件仍然可以被视为一组,而不是单独的控件。Enabled属性。Enabled属性为Fals
7、e:标题呈灰色,表示框架内的所有对象均被屏蔽,不允许对框架内的对象进行操作。Visible属性。Visible属性设为False,表示在程序执行期间,框架及其内部所有控件全部被隐藏起来。也就是说,对框架的操作也是对其内部的控件的操作。其取值为True,表示框架及其内部控件可见。框架内的所有可见控件将随框架一起移动、显示、消失和屏蔽。框架可以响应Click和DblClick事件。单选按钮、复选框单击事件示例例7.3 设计用三组框架显示学生个人信息窗体。Private Sub Command1_Click()Dim str As String str=Text1.Text&,If Option1.
8、Value=True Then str=str&Option1.Caption&,Else str=str&Option2.Caption&,End If If Option3.Value=True Then str=str&Option3.Caption&,Else str=str&Option4.Caption&,End If str=str&vbCrLf&Frame3.Caption&:If Check1.Value=1 Then str=str&Check1.Caption&If Check2.Value=1 Then str=str&Check2.Caption&If Check3.
9、Value=1 Then str=str&Check3.Caption&If Check4.Value=1 Then str=str&Check4.Caption&If Check5.Value=1 Then str=str&Check5.Caption&If Check6.Value=1 Then str=str&Check6.Caption&MsgBox str,学生个人信息End Sub7.1.2 列表框和组合框列表框和组合框1列表框2组合框1列表框将一系列的选项组合成一个列表,供用户选择。在列表框中放入若干个项的名字,用户可以通过单击某一项或多项来选择自己所需要的项目。用户可以选择其中
10、的选项,但不能向列表清单中输入项目。列表框的常用属性列表框的常用属性(1)List属性。一个字符串数组,用来保存列表框中的各个数据项内容。List数组的下标从0开始,即List(0)保存表中的第一个数据项的内容。List(1)保存第二个数据项的内容,以此类推,List(ListCount-1)保存表中的最后一个数据项的内容。设置list属性:列表框名.List(索引号)=项目内容访问list属性:变量名=列表框名.List(索引号)或 print列表框名.List(索引号)ListCount属性。ListCount属性与List属性一起用,表示列表框中有多少列表项。该属性只能在运行状态访问。L
11、istCount-1是最后一个列表项的下标。列表框的常用属性列表框的常用属性(2)ListIndex属性。判断列表框中当前被选中的项目的序号。序号也是自0开始,第一个项目的序号为0,第二个项目的序号为1,以此类推。如果Listindex属性值为-1,则表明没有项目被选中。该属性只能在运行状态访问。Column属性。当列表框的选择项数超过列表框所能容纳的范围时,将设置列表框的垂直滚动条或水平滚动条。属性值n是正整数,可以有两种情况:0(默认值)表示项目以一列显示,项目多时自动添加垂直滚动条;n=1表示项目以n列显示,但滚动条出现时是水平的。该属性只能在设计状态设置。列表框的常用属性列表框的常用属
12、性(3)Selected属性。用于返回或设置列表框中列表项的选择状态。只能在运行中设置或引用。Selected属性是一个逻辑数组,表示对应的项在程序运行期间是否被选中。例如,Selected(0)的值为True表示第一项被选中,为False表示未被选中。Sorted属性。决定列表框中项目在程序运行期间是否按字母顺序排列显示。Sorted属性只能在设计状态设置。如果Sorted为True,则项目按字母顺序排列显示;如果Sorted为False,则项目按加入的先后顺序排列显示。Text属性。默认属性,只能在运行状态中设置或引用。Text属性为字符串,保存了列表框中当前被选中条目的文字。List(L
13、istIndex)等于Text。列表框的常用属性列表框的常用属性(3)MultiSelect属性。决定列表框是否支持多选。该属性有以下三种状态。0None(默认值):禁止多项选择,只能选择一个条目。1Simple:简单多项选择,用鼠标单击或按空格键表示选定或取消选定一个选择项。2Extended:扩展多项选择,按住Ctrl键同时用鼠标单击,表示选定或取消选定一个选择项;按住Shift键同时单击鼠标,或者按住Shift键并且移动光标键,就可以从前一个选定的项扩展选择到当前选择项,即选定多个连续项。SelCount属性。表明列表框中当前被选中的条目的总数。如果没有任何条目被选中,则该属性值为0。该
14、属性在程序运行时只读,设计时不可用。Style属性。决定列表框样式,其取值0(默认值)表示只显示列表项文本;其取值1表示列表项文本前带复选框。列表框常用事件和方法列表框常用事件和方法(1)AddItem方法。向列表框当中添加新条目。其形式:List1.AddItem 字符串表达式,Index 说明:使用该方法在窗体的Load事件过程中对列表框添加初始条目。字符串表达式是将要加入列表框的项目。Index决定新增项目在列表框中的位置。如果Index省略,则新增项目将添加在最后。对于第一个项目,Index为0。Index不能比现有条目数大,否则会出现错误。例如,在列表框的第二项位置插入一新列表项,内
15、容为“C语言程序设计”,格式如下:List1.AddItem C语言程序设计,1列表框常用事件和方法列表框常用事件和方法(2)RemoveItem方法。从列表框中删除一个项目。其形式:List1.RemoveItem index说明:Index是被删除项目在列表框或组合框中的位置。对于第一个元素,Index为0。例如,删除列表框的第二项的格式如下:List1.RemoveItem 1 Clear方法。清除列表框当中所有现有条目。其形式:List1.Clear说明:对象可以是列表框、组合框或剪贴板,即Clear方法适用于列表框、组合框和剪贴板。例7.4 设计窗体,实现学生选课Private Su
16、b Command3_Click()For i=List2.ListCount-1 To 0 Step-1 If List2.Selected(i)=True Then List1.AddItem List2.List(i)List2.RemoveItem i End If Next iEnd SubPrivate Sub Command1_Click()For i=List1.ListCount-1 To 0 Step-1 If List1.Selected(i)=True Then List2.AddItem List1.List(i)List1.RemoveItem i End If N
17、ext iEnd SubPrivate Sub Command2_Click()For i=0 To List1.ListCount-1 List2.AddItem List1.List(i)Next i List1.ClearEnd Sub Private Sub Command4_Click()For i=0 To List2.ListCount-1 List1.AddItem List2.List(i)Next i List2.ClearEnd Sub 2组合框一种组合列表框和文本框的特性而成的控件,即组合框是一种独立的控件,但它兼有列表框和文本框的功能。它可以像列表框一样,让用户通过鼠
18、标选择所需要的项目;也可以像文本框一样,用键入的方式输入项目。组合框的默认名称和标题为ComboX(X为l,2,3,)。组合框的属性、方法和事件与列表框基本相同。一般不针对组合框的事件进行单独编程。组合框的常用属性 Style属性。取值为0,1,2,它决定了组合框三种不同的类型,分别为下拉式组合框、简单组合框和下拉式列表框。下拉式组合框(默认值)“显示在屏幕上的仅是文本编辑框和一个下拉箭头。执行时,用户可用键盘直接在文本框区域键入文本内容,也可用鼠标单击右边的下拉箭头,打开列表框供用户选择,选中的内容显示在文本框上。简单组合框:列出所有项目供用户选择,右边没有下拉箭头,所列项目不能收起,与文本
19、编辑框一起显示在屏幕上。用户可以在文本框中输入列表框中没有的选项。下拉式列表框:类似下拉式组合框,但不能输入不在列表框里的内容。Text属性。用于获取当前选中的项目值。组合框在运行时Text属性与最后文本框中显示的文本相对应。组合框的其他属性与列表框和文本框的大部分属性相同。例7.5 设计窗体,用文本框显示学生所在学院、所学专业和班级 Private Sub Command1_Click()Text1.Text=Text1.Text&Combo1.Text&学院&Combo2.Text&_ 专业&Combo3.Text&班学生End SubPrivate Sub Combo1_Click()C
20、ombo2.Clear Select Case Combo1.Text Case 计算机科学与技术 Combo2.AddItem 计算机科学 Combo2.AddItem 网络工程 Combo2.AddItem 软件工程 Combo2.AddItem 计算机组成 Case 信息科学与技术 Combo2.AddItem 测控技术与仪器 Combo2.AddItem 自动化与仪表 Combo2.AddItem 电气工程及其自动化 Case 化学工程与技术 Combo2.AddItem 化学工程 Combo2.AddItem 安全工程 Combo2.AddItem 制药工程 Case 环境生物工程与
21、技术 Combo2.AddItem 生物工程 Combo2.AddItem 环境工程 End SelectEnd Sub7.1.3 滚动条滚动条通常用来附在窗口上帮助观察数据或确定位置,也可用来作为数据输入的工具。VB 6.0为用户提供两种滚动条,水平滚动条和垂直滚动条。水平滚动条和垂直滚动条的默认名称分别为HScrollX和VScrollX(X为1,2,3,)。滚动条的值均以整数表示,其取值范围为-3276832767。滚动条最小值和最大值分别在其的左、右端点或上、下端点,其值分别赋给属性Min和Max。滚动条的常用属性 Max属性,设置滚动块位于水平滚动条最右侧或者垂直滚动条最低端时的值。
22、默认值是32767。Min属性,设置滚动块位于水平滚动条最左侧或者垂直滚动条最高端时的值,默认值是0。Value属性,用于设置或返回滚动条当前代表的值。对应于滚动块在滚动条中的位置,其值总在Min和Max之间。无论单击箭头、单击空白区域还是拖动滚动滑块,都会改变这个属性值。LargeChange和SmallChange属性。LargeChange指定用户在滚动框的空白区域内单击时,滚动条值的改变量。SmallChange指定用户在滚动条两端的滚动按钮时,滚动条值的改变量,通常SmallChange=1。滚动条常用事件和方法 Change事件。释放滚动块或单击滚动空白区域或单击滚动条按钮或通过代
23、码改变Value属性值时发生该事件。Scroll事件。当鼠标在滚动条内拖动滑块时会触发Scroll事件。单击滚动条两端的箭头或滚动条空白处均不能触发此事件。Scroll事件与Change事件的区别在于:当滚动条滑块滚动时,Scroll事件一直发生,可用于跟踪滚动条的动态变化;而Change事件只是在滚动结束之后才发生一次,可用来得到滑块所在的位置值。例7.6 设计窗体,用滚动条改变文本框内文本字体的大小 Private Sub Form_Load()Dim Size As Integer Size=72 Label4.Caption=Size Text1.FontSize=Size VScro
24、ll1.Value=SizeEnd SubPrivate Sub VScroll1_Change()Text1.FontSize=VScroll1.Value Label4.Caption=VScroll1.ValueEnd Sub 思考:如果将Change事件改为Scroll事件,程序运行结果会怎么变化?7.1.4 定时器定时器又称计时器、时钟控件,能够有规律地以一定的时间间隔触发计时器事件(Timer事件)。一个窗体可以使用多个时钟控件,它们的时间间隔相互独立。在程序运行阶段,时钟控件不可见。Timer事件是定时器唯一的一个事件。Timer事件是周期性的事情,间隔多长时间产生一次,由控件的
25、Interval属性指定。当规定的时间间隔达到时,就会触发这个事件。定时器的常用属性 Interval属性。决定两个Timer事件之间的时间间隔。时间间隔单位是毫秒,取值范围在064767 之间(包括这两个数值),单位为毫秒(0.001秒),表示计时间隔,最大的时间间隔约为65s。若将Interval属性设置为0或负数,则计时器将停止工作。Enabled属性。决定定时器是否生效。无论何时,只要时钟控件的Enabled属性被设置为True,而且Interval属性值大于0,则计时器开始工作(以Interval属性值为间隔,触发Timer事件)。通过把Enabled属性设置为False,可使时钟控
26、件无效,即计时器停止工作。定时器示例Private Sub Form_Load()Form1.AutoRedraw=True Form1.Print timer test Form1.FontSize=10 Timer1.Interval=1000 最大时间间隔不超过65秒=65000毫秒End SubPrivate Sub Timer1_Timer()If Form1.FontSize 100 Then fontsize的最大值为2160磅 Form1.FontSize=Form1.FontSize*2 Else Form1.FontSize=10 End If Cls Print time
27、r testEnd Sub例7.7 设计窗体,实现闹钟的功能。Sub Command2_Click()hour=00 minute=00End SubSub Command3_Click()EndEnd SubDim hour,minuteSub Command1_Click()hour=Format(Text1.Text,00)minute=Format(Text2.Text,00)End SubSub Timer1_Timer()Dim i As Integer Label3.Caption=Time$()If Mid$(Time$,1,5)=hour+:+minute Then For
28、i=1 To 100 Beep Next i End IfEnd Sub7.1.5 图片框和图像框图片框和图像框1.图片框图片框2.图像框图像框1.图片框图片框图片框用来显示图片和图形。显示以下几种格式的图形:位图文件(*.bmp)、图标文件(*.ico)、图元文件(*.wmf)、增强元文件(.emf)、JPEG文件和GIF文件。当它作为其他控件的容器时,用法与框架控件相同。图片框的常用属性 Picture属性。设置控件是否要显示图片,可以在属性窗口静态设置,也可以在代码中动态设置。若没有设置Picture属性值,则图像框中不会显示任何图形。在代码中设置的格式:.Picture=LoadPic
29、ture()例如:Picture1.picture=Loadpicture(C:Program Files _ Microsoft VisualStudioCommonGraphicsIconsElements _ MOON01.ICO)说明:调用不带参数的LoadPicture()函数,将使图像控件不显示任何图像。属性窗口设置的Picture 属性,运行时不依赖源文件。而在程序代码中使用LoadPicture调入的图形文件,在运行时要保证函数的参数应该包括图形文件的完整路径和文件名。图片框的常用属性 AutoSize属性。设置是否自动改变图片框大小以显示图片的全部内容。AutoSize取值为
30、True时,自动改变图片框大小;取值为False(默认值)时,则不改变图片框大小。Align属性。设置图片框在窗体中的显示方式。取值为0、1、2、3、4。图片框常用事件和方法 图片框响应的事件较多,有Click、DblClick和Change等。其中,Change事件在改变图片框的Picture属性时发生。在窗体上PictureBox控件与Image控件的使用方法基本相同。相比之下,图形框比图像框占用的内存多。使用PictureBox控件的优点在于它可以作为“容器”。Print方法。在控件中输出文本和数据。其格式:.Print 输出项列表 Cls方法。清除在图片框中输出的内容。Cls只能清除窗
31、体或图片框中由Print方法和绘图方法(见第8章)显示的文本信息和图形,不能清除窗体或图片框中的控件(如形状控件等)。利用Picture属性加载的图片,应用LoadPicture方法清除。其格式:.Cls例7.8 设计窗体,实现月食效果。Dim i As IntegerPrivate Sub Timer1_Timer()i=i+1 Picture1.Picture=LoadPicture(App.Path&MOON0&i&.ICO)If i=8 Then i=0End Sub2.图像框图像框图像框控件用来装载图形文件,使用方法与图片框类似。图像框功能单一,不能作为容器,也不支持绘图方法和打印方
32、法,但显示图形较快。图像框支持的事件不多,主要有Click、DblClick、MouseDown、MouseUp和MouseMove。图像框支持的方法也不多,主要有Move方法和Refresh方法。图像框的常用属性 Picture属性。指定控件中要显示的图片。Stretch属性。其值设置为False时,图像框可自动改变大小以适应其中的图形(框适应图片);其值设置为True时,加载到图像框的图形可自动调整尺寸以适应图像框的大小(图片适应框)。BorderStyle属性。决定了图像框是否有边框。属性值为0时,无边框(默认值);为1时,有边框。其中,Name属性、Left属性、Top属性、Width
33、属性、Height属性、Visible属性的用法与其他控件的相同。例7.9 设计窗体,随机抽取三个数字作为中奖号码。Private Sub Command1_Click()Timer1.Enabled=True End SubPrivate Sub Command2_Click()Timer1.Enabled=FalseEnd SubPrivate Sub Timer1_Timer()Randomize num1=Int(Rnd*10)Image1.Picture=LoadPicture(App.Path&shuzi&num1&.jpg)Randomize num2=Int(Rnd*10)Im
34、age2.Picture=LoadPicture(App.Path&shuzi&num2&.jpg)Randomize num3=Int(Rnd*10)Image3.Picture=LoadPicture(App.Path&shuzi&num3&.jpg)End Sub 7.2 菜单设计菜单设计7.2.1 下拉菜单下拉菜单7.2.2 弹出菜单弹出菜单下拉式菜单结构1菜单编辑器打开菜单编辑器方法:(1)在设计模式下,执行“工具”菜单中的“菜单编辑器”命令。(2)使用快捷键Ctrl+E。(3)单击工具栏中的“菜单编辑器”按钮。(4)在要建立菜单的窗体上右击鼠标,在快捷菜单中,单击“菜单编辑器”命令
35、。1菜单编辑器用于设置菜单项的各个属性。用户只要输入各属性的值,就可以创建一个菜单项。每创建一个菜单项,编辑窗口下部的显示区中会显示出来。所有菜单项输入完毕后,单击“确定”按钮。菜单控件属性区菜单控件属性区 编辑区编辑区 菜单项显示区菜单项显示区 用来对输入的菜单项进行简单的编辑 输入的菜单项在这里显示 checkedenabledvisible快捷键:按下时会立刻运行一个菜单项。可以为频繁使用的菜单项指定一个快捷键.(顶层菜单不能有快捷键。)访问键:在“标题标题”文本框中,为菜单键入希望在菜单栏上显示的文本。如果希望某一字符成为该菜单项的访问键,也可以在该字符前面加上一个(&)字符。在菜单中
36、,这一字符会自动加上一条下划线。访问键允许按下 ALT 键和访问键来打开一个菜单。一旦菜单打开,通过按下访问键可选取控件。例如,在PowerPoint中,按下 ALT+E 键可打开“编辑”菜单,再按 F 键可选取“查找”菜单项。按钮也可用此方法设访问键,单击ALT+访问键,相当于单击按钮。注意n不能为顶层菜单设置复选标志n不能为顶层菜单设置快捷键n顶层菜单不可用时,其子菜单不再显示n菜单标题为“-”(减号),将显示为分割线n在程序中改变菜单Visible的值可动态控制菜单的显示与否。例7.10 设计一个窗体,设计一个下拉菜单,实现字体、字号和颜色的设置。Private Sub mnugreen
37、_Click()Text1.ForeColor=vbGreen mnured.Checked=False mnublue.Checked=False mnugreen.Checked=TrueEnd Sub Private Sub mnuhelp_Click()MsgBox 本系统是测试版End SubPrivate Sub mnulishu_Click()Text1.FontName=隶书 mnulishu.Checked=True mnukaiti.Checked=False mnuheiti.Checked=FalseEnd SubPrivate Sub mnunew_Click()Te
38、xt1.Visible=TrueEnd Sub Private Sub mnured_Click()Text1.ForeColor=vbRed mnured.Checked=True mnublue.Checked=False mnugreen.Checked=FalseEnd SubPrivate Sub mnusave_Click()MsgBox 你单击了保存菜单项End Sub 2菜单控件数组在同一菜单上共享相同名称和事件过程的菜单工程的集合。菜单控件数组的作用主要有两个:一是在运行时用于动态地增删菜单项,但必须是菜单控件数组中的成员;假设菜单控件数组名为mymenuLoad mymen
39、u(n)Unload mymenu(n)二是简化编程,用一段代码处理多个菜单项。每个菜单控件数组元素都有唯一的索引值来标识,该值在菜单编辑器上“Index属性框”中指定。增加新菜单项的方法 在菜单编辑器中设计菜单时,建立一个菜单控件数组,设置名称、标题、Index属性值为0。例如,建立一个名称为mnufilelist,Index为0的控件数组元素,设置其Visible属性为False。设置一个变量num来保存当前控件数组元素的位置。设置变量title来存放添加菜单项的标题。在需要添加菜单项时,执行下面的语句。num=num+1下标加1,指向下一个数组元素Load mnufilelist(num
40、)建立新的控件数组元素mnufilelist(num).Caption=title设置新数组元素的标题mnufilelist(num).Visible=True使新数组元素可见菜单控件数组的各元素在菜单控件列表框中必须是连续的,而且必须是在同一缩进级上。删除菜单项的方法 选择要删除的菜单项,并将其下标存放在变量N中。从被删除的菜单项开始,用后面的菜单项覆盖前面的菜单项。For I=N to num mnufilelist(I).Caption=mnufilelist(I+1).CaptionNext I 然后用Unload删除最后一个菜单项,并将控件数组的个数减1。Unload mnufile
41、list(num)num=num-1例7.11 在上题基础上设计增加“mnufilelist”,“mnuzi”控件数组。Private Sub mnunew_Click()Dim i As Integer Text1.Visible=True If num=0 Then mnuzi(0).Visible=True num=num+1 Load mnuzi(num)mnuzi(num).Caption=斜体End SubPrivate Sub mnuopen_Click()Dim i As Integer mnuspace1.Visible=True mnuspace2.Visible=True
42、 num=num+1 i=num Mod 5 If i=0 Then i=5 Load mnufilelist(num)mnufilelist(i).Caption=打开文件&num mnufilelist(i).Visible=TrueEnd Sub Private Sub mnuzi_Click(Index As Integer)Select Case Index Case 0 If mnuzi(Index).Checked=False Then Text1.FontBold=True mnuzi(Index).Checked=True Else Text1.FontBold=False
43、mnuzi(Index).Checked=False End If Case 1 If mnuzi(Index).Checked=False Then Text1.FontItalic=True mnuzi(Index).Checked=True Else Text1.FontItalic=False mnuzi(Index).Checked=False End If End SelectEnd Sub 7.2.2 弹出菜单弹出菜单首先用菜单编辑器建立菜单。必须把菜单名(即主菜单项)的“可见”属性设置为False(子菜单项不要设置为False)。然后用PopupMenu方法弹出显示。Popup
44、Menu方法用来显示弹出菜单,其格式:对象.PopupMenu ,Flag,X,Y其中,菜单项是必需的,其他参数是可选的;x,y参数指定弹出快捷菜单显示的位置(x,y坐标)。默认使用鼠标的坐标;标志参数用于进一步定义弹出菜单的位置和性能。在例7.10中,将“字体”子菜单改为弹出菜单Private Sub Text1_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)If Button=2 Then Text1.Enabled=False Text1.Enabled=True PopupMenu mnufon
45、t End IfEnd Sub 7.3 通用对话框通用对话框通用对话框:也称公共对话框,是VB系统基于Windows的标准对话框界面,创建的六种标准对话框(打开、另存为、颜色、字体、打印机和帮助)。通用对话框(CommonDialog 控件)不是标准的控件,在使用通用对话框前,需要在“工程”菜单中选定“部件”对话框的“控件”选项卡,选中Microsoft Common Dialog Control 6.0选项,单击“确定”按钮,则通用对话框添加到工具箱中。通用对话框的属性 Action功能属性。用来决定调用何种类型的对话框。DialogTitle(对话框标题)属性。通用对话框标题属性。只对“打
46、开”和“另存为”对话框有效。CancelError属性。该属性决定在用户单击“取消”按钮时是否产生错误信息。取其值为True时,表示单击“取消”按钮,出现错误警告;取其值为False(缺省)时,表示单击“取消”按钮,不会出现错误警告。Name属性。设置通用对话框的名称。Left和Top属性。Left和Top属性表示通用对话框的位置。通用对话框的方法 ShowOpen方法:显示“打开”对话框。ShowSave方法:显示“另存为”对话框。ShowColor方法:显示“颜色”对话框。ShowFont方法:显示“字体”对话框。ShowPrinter方法:显示“打印机”对话框。ShowHelp方法:显示
47、“帮助”对话框。CommonDialog1.Action=1等价于CommonDialog1.ShowOpenCommonDialog1.Action=2等价于CommonDialog1.Showsave以此类推复习n学习过的容器控件有?n图片框与图象框的区别?Autosize,Stretchn通用对话框可以创建哪几种对话框?如何创建?1“打开”对话框Action=1 Private Sub Command1_Click()CommonDialog1.DialogTitle=打开文件 CommonDialog1.Filter=All Files(*.*)|*.*|frm文件|*.frm|vbp
48、文件|*.vbp|CommonDialog1.FilterIndex=2 CommonDialog1.InitDir=d:CommonDialog1.Flags=1 CommonDialog1.Action=1End Sub P1852“另存为”对话框 Action=2 Private Sub Command2_Click()CommonDialog1.FileName=Default.Txt 设置默认文件名CommonDialog1.DefaultExt=Txt 设置默认扩展名CommonDialog1.Action=2 打开另存为对话框Open CommonDialog1.filename
49、 For Output As#1 打开文件供写入数据Print#1,Text1.TextClose#1 关闭文件End Sub 3“颜色”对话框 Private Sub Command3_Click()CommonDialog1.Action=3 打开颜色对话框 Text1.ForeColor=CommonDialog1.Color 设置文件框前景颜色End SubAction=34“字体”对话框 Private Sub Command4_Click()CommonDialog1.Flags=cdlCFBoth Or cdlCFEffectsCommonDialog1.Action=4 打开字
50、体对话框Text1.FontName=CommonDialog1.FontName Text1.FontSize=CommonDialog1.FontSize Text1.FontBold=CommonDialog1.FontBold Text1.FontItalic=CommonDialog1.FontItalicText1.FontStrikethru=CommonDialog1.FontStrikethruText1.FontUnderline=CommonDialog1.FontUnderline Text1.ForeColor=CommonDialog1.ColorEnd Sub A