第七章

界面设计:应用程序是否易用,除了功能齐全外,用户界面也是非常重要的,它主要负责用户与应用程序之间的交互。前面章节已经介绍了设计界面的常用控件,但仅用这些控件不能完全满足界面设计的需要。典型的Windows应用程序的界面要素还包括菜单和对话框等,Visual Basic提供了设计这些界面要素的方法。本章将介绍VB中最主要的用户界面设计技术以及相关控件,主要主要介绍常用控件、键盘与鼠标、通用对话框、菜单设计。      本章学习目标:      (1)单选按钮、复选框、框架控件的常用属性。      (2)图片框控件的常用属性、事件和方法。      (3)滚动条控件的常用属性、事件和方法。      (4)定时器控件的常用属性、事件和方法。      (5)键盘与鼠标的常用事件。      (6)打开对话框、文件对话框、“颜色”对话框、“字体”对话框、“打印”对话框、“帮助”对话框的设计方法。      (7)下拉式菜单和弹出式菜单的设计方法。      重点:各类控件的属性、方法及应用,通用对话框的属性、方法及应用,菜单设计器的应用。      难点:各类控件在程序中的实际应用,键盘与鼠标事件在程序中的实际应用。      学习方法:      先看课本,再看相关知识点的微课。在看微课时,看不懂的同学可以反复看,直到看懂为止,实在看不懂的,把不懂的问题记录下来,在讨论群里讨论得到解决,或者反映给助教,助教反映给教师,教师在课堂上统一讲解面上问题。在学习的过程中要养成记笔记的好习惯。所有的同学都要在看完书和微课后,做网站里布置的作业以验证是否掌握所学知识,最后提交作业。      参考教材:      (1)《面向对象程序设计基础——Visual Basic》,清华大学出版社,第7章 界面设计。      (2)《全国计算机等级考试二级教程——Visual Basic语言程序设计(2018年版)》,高等教育出版社。      (3)《全国计算机等级考试教程二级Visual Basic》,人民邮电出版社。7.1单选按钮、复选框和框架:Visual Basic6.0提供了几个用于选择的标准控件,除了在第6章中讲到的列表框和组合框之外,用于选择的控件还包括单选按钮、复选框和框架。 1. 单选按钮和复选框 除支持Top、Height、Picture、Caption、Enabled等属性外,比较常用的属性还有: (1)Value属性 (2)Alignment属性 (3)Style属性 2. 框架 框架(Frame)是一个容器控件,用于将屏幕上的对象分组。框架的属性包括Enabled、FontBold、FontName、FontUnderline、Height、Left、Top、Visible、Width。此外,Name属性用于在程序代码中标识一个框架,而Caption属性定义了框架的可见文字部分。
7.2滚动条:滚动条通常用来附在窗口上帮助观察数据或确定位置,也可用来作为数据输入的工具,被广泛地用于Windows应用程序中。滚动条分为两种,即水平滚动条和垂直滚动条。 1. 滚动条属性 滚动条的属性用来标识滚动条的状态,除支持Enabled、Height、Left、Caption、Top、Visible、Width等常用属性外,还具有以下属性:Max、Min、LargeChange、SmallChange、Value。 2. 滚动条事件 与滚动条有关的事件主要是Scroll和Change。
7.3图片框和图像框:1)属性 图片框除与窗体相同的属性外,还常用以下属性:Picture属性、Autosize、BorderStyle。 图像框常用的属性有:Picture、Stretch。 2)图形文件的装入通过Picture属性,既可在属性窗口中装入图片,也可在程序中通过代码装入图片。 3)图片框与图像框的区别 (1)其主要区别是图像框不能作为控件容器,而图形框可以;图形框还支持Print和Cls方法,而图像框不支持这两种方法。 (2)图片框与图像框常用的事件有Click和DblClick事件,与图片框不同,图像框没有Change事件,因此不会由于Picture属性改变而触发Change事件。 (3)图像框通过Stretch属性设置图片是否调整大小,以适应图像框的大小,值为True时,自动放大或缩小;图片框通过Autosize属性设置控件是否调整大小,值为True时,则自动改变控件的大小,以便使其与图片的大小相一致,如果属性值为False(默认值),则不会自动调整控件大小,图像可能显示不完整。图形框控件不会对其显示的图像进行缩放,这一点与图像框不同。 4)图形框常使用的方法 图形框常使用的方法与窗体类似。 (1)Print方法:用于在图片框控件中显示文本、数据等。 (2)Cls方法:清除图片框中显示的文本、数据和用图形方法绘制的图形。 (3)Move方法:改变图片框的位置和大小。
7.4形状和直线:形状(Shape)和直线(Line)控件可用来在窗体、框架或图片框上画简单的图形,它们通常只用于表面的修饰,不响应任何事件。 形状(Shape)控件在窗体上添加的形状控件默认为矩形,可通过设置Shape属性得到不同的形状。 直线(Line)控件可通过设置直线控件的位置、颜色、长度、宽度、线型等属性画出不同的线。 形状控件常用属性如下: (1)Shape属性:用来设置所画形状的几何特性。 (2)BorderWidth属性:设置线条宽度。 (3)FillCo1or属性:设置填充形状控件的颜色,其值用8位十六进制数表示。当通过属性窗口设置FillCo1or属性时,会显示调色板,可以从中选择所需要的颜色,不必考虑十六进制数值。 (4)FillStyle属性:设置填充形状控件的样式。 直线控件的常用属性如下: (1)BorderStyle属性:设置线条类型。 (2)BorderWidth属性:设置线条宽度。 (3)BorderColor属性:设置线条的颜色。 (4)X1、Yl、X2、Y2属性:设置或返回直线的起点和终点坐标,“X1”属性设置(或返回)了直线最左端水平坐标,“Yl”属性设置(或返回)了直线最左端垂直坐标,“X2”、“Y2”则设置(或返回)了直线最右端的水平、垂直坐标。
7.5计时器:Visual Basic可以利用系统内部的计时器计时,而且提供了定制时间间隔的功能,用户可以自行设置每个计时器事件的时间间隔。 1. 计时器的主要属性 (1)Interval属性:Interval属性用来表示两个Timer事件之间的时间间隔,其值以ms(毫秒,1秒=1000毫秒)为单位。当Interval属性值为0时,计时器控件不发挥作用。 (2)Enabled属性:Enabled属性用来设置计时器控件是否可用。当该属性设置为True(默认值)时,计时器可用;当该属性设置为False时,计时器不可用。 2. 计时器的常用事件 计时器只有一个Timer事件。程序运行时,每隔由Interval属性值设置的时间,系统就会自动触发一次Timer事件,执行Timer事件过程。只有将计时器控件的Interval属性设置为大于0的整数时,程序运行时才会触发计时器控件的Timer事件,否则不会触发Timer事件。
7.6键盘事件:1)KeyPress事件 在窗体上画一个控件(指前面所讲的可以发生KeyPress事件的控件),并双击该控件,进入程序代码窗口后,从“过程”框中选取KeyPress,即可定义KeyPress事件过程。一般格式为:Private Sub Text1_KeyPress(KeyAscii As Integer)…End Sub 2)KeyDown和KeyUp事件 KeyDown和KeyUp事件的参数有两种形式,其中Index As Integer只用于控件数组,而KeyCode As Integer,Shift As Integer用于单个控件。
7.7鼠标事件:为了实现鼠标操作,Visual Basic提供了3个过程模板: (1)按下鼠标键事件过程:Sub Form_MouseDown(Button As Integer,Shift As Integer,x As Single,y As Single)…End Sub (2)松开鼠标键事件过程:Sub Form_MouseUp(Button As Integer,Shift As Integer,x As Single,y As Single)…End Sub (3)移动鼠标事件过程:Sub Form_MouseMove(Button As Integer,Shift As Integer,x As Single,y As Single)…End Sub 上述事件过程用于窗体和大多数控件,包括复选框、命令按钮、单选按钮、框架、文本框、目录框、文件框、图像框、图片框、标签、列表框等。 3个鼠标事件过程具有相同的参数,含义如下: (1)Button:被按下的鼠标键,可以取3个值。 (2)Shift:表示Shift、Ctrl和Alt键的状态。 (3)X、Y:鼠标光标的当前位置。
7.8鼠标光标的形状与拖放:鼠标光标的形状通过MousePointer属性来设置。该属性可以在属性窗口中设置,也可以在程序代码中设置。MousePointer的属性是一个整数,可以取0~15。 (1)在程序代码中设置MousePointer属性。在程序代码中设置MousePointer属性的一般格式为:对象.MousePointer=设置值 (2)在属性窗口中设置MousePointer属性。 单击属性窗口中的MousePointer属性条,然后单击设置框右端向下的箭头,将下拉显示MousePointer的16个属性值。 (3)自定义鼠标光标。 如果把MousePointer属性设置为99,则可通过MouseIcon属性定义自己的鼠标光标。有以下两种方法: ① 如果在属性窗口中定义,可首先选择所需要的对象,再把MousePointer属性设置为“99-Custom”,然后设置 MouseIcon属性,把一个图标文件赋给该属性(与设置Picture属性的方法相同)。 ② 如果用程序代码设置,则可先把MousePointer属性设置为99,然后再用LoadPicture函数把一个图标文件赋给MouseIcon属性。 3)鼠标光标形状的使用在Windows中,鼠标光标的应用有一些约定俗成的规则。为了与Windows环境相适应,在应用程序中应遵守这些规则,主要有: (1)表示用户当前可用的功能,如“I”形鼠标光标(属性值为3)表示插入文本;十字形状(属性值为2)表示画线或圆,或者表示选择可视对象以进行复制或存取。 (2)表示程序状态的用户可视线索,如沙漏鼠标(属性值为11)表示程序忙,一段时间后将控制权交给用户。 (3)当坐标(X,Y)值为0时,改变鼠标光标形状。 4)拖放 与拖放有关的属性、事件和方法如下。 (1)属性。有两个属性与拖放有关,即DragMode和DragIcon。 (2)事件。与拖放有关的事件是DragDrop和DragOver。
7.9通用对话框:Visual Basic6.0的对话框分为3种类型,即预定义对话框、自定义对话框和通用对话框。预定义对话框也称预制对话框,是由系统提供的的Msgbox函数和InputBox函数建立的简单对话框,即消息对话框和输入对话框。自定义对话框也称定制对话框,当要定义的对话框比较复杂时,由用户根据自己的需要进行定义,但会花费较多的精力和时间。为此Visual Basic6.0提供了通用对话框,通用对话框是一种称为CommonDialog的ActiveX控件,用它可以定义较为复杂的对话框,可以打开“打开”、“另存为”、“字体”、“颜色”、“打印”、“帮助”共6种对话框。但是,这些对话框只是输入/输出的界面,不能真正实现打开文件、保存文件、设置颜色、设置字体、打印等操作,如果想要实现这些功能,则需要编程实现。
7.10菜单设计:在Windows环境下,几乎所有的应用软件都通过菜单实现各种操作。它不仅能使系统美观,而且能使用户使用方便,并可避免由于误操作而带来的严重后果。菜单的基本作用有两个:一是提供人机对话的界面,使用户能够更方便、更直观地选择应用系统的各种功能;二是管理应用系统,控制各种功能模块的运行。Visual Basic也提供了菜单设计的功能,当要完成较为复杂的程序设计时,使用菜单具有明显的优势。在实际应用中,菜单可分为两种基本类型,即下拉式菜单和弹出式菜单。位于窗口标题栏下方的称为下拉式菜单,Visual Basic6.0最多可以建立6层下拉式菜单。鼠标在右击时弹出的菜单称为弹出式菜单,也称为快捷菜单,其中包含的命令与右击的对象有关。在Windows及各种系统软件和应用软件中,下拉式菜单和弹出式菜单得到了广泛的应用。
[单选题]设形状控件的WidthHeight属性的值相等。下面叙述中正确的是________

选项:[呈现的图形一定是圆, 呈现的图形一定不是矩形
, 呈现的图形一定是正方形
, 呈现的图形一定是矩形]
[单选题]对于通用对话框控件,下列说法中错误的是________

选项:[用打开文件对话框可以指定一个文件,由程序使用, DefaultEXTDialogTitle属性只用于打开对话框,不能用于保存对话框, 用保存文件对话框可以指定一个文件,由程序使用
, 用通用对话框控件可以建立打开文件对话框,也可以建立保存文件对话框]
[单选题]当复选框控件被选中(即复选框控件内显示"√"标记)时,其Value属性的值为________

选项:[1, True
, 0, False
]
[单选题]用于设置计时器事件产生间隔的属性是__________

选项:[Interval
, Index
, Tag
, Value
]
[单选题]

在窗体上画一个名称为Text1的文本框,然后编写以下事件过程:

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

  If _________________ Then

      Text1.SelStart = 0

      Text1.SelLength = Len(Text1.Text)

  End If

End Sub

要求程序运行时若输入焦点在Text1按下组合键Ctrl+A可以选取Text1内所有的文本则在横线处应填入的表达式是________


选项:[Text1.KeyCode = "A" And Text1.Shift = "Ctrl", KeyCode = 65 And Shift = 2 , Text1.KeyCode = 65 And Text1.Shift = 2, KeyCode = "A" And Shift = "Ctrl"]
[单选题]下列关于键盘事件的说法中正确的是__________

选项:[主键盘上的"1" 键和数字键盘上的"1"键的KeyCode码相同, 主键盘上"4"键的上档字符是"$",当同时按下Shift和主键盘上的"4" 键时,KeyPress事件过程的KeyAscii参数值是"$"的ASCII值
, 按下键盘上的任意一个键都会引发KeyPress事件
, KeyDownKeyUp的事件过程中有KeyAscii参数]
[单选题]设窗体上有2个框架,每个框架中有若干个单选按钮,下面叙述中正确的是__________

选项:[如果某个框架的Enabled属性为False,则里面的单选按钮一定都是未选中状态
, 每个框架中都有一个单选按钮可以被选中
, 如果某个框架的Enabled属性为True,则里面单选按钮的Enabled属性也都为True
, 窗体上所有单选按钮中只有一个可以被选中]
[单选题]

设有一名称为mnuBold的下拉菜单项,程序运行时,希望达到如下效果:当第一次单击该菜单项时,其标题左侧显示"√",当第二次单击该菜单项时,其标题左侧的"√"消失,依此交替进行,...... 。则应在mnuBold_Click事件过程中书写的语句是________


选项:[mnuBold.Checked = IIf(mnuBold.Checked, True, False)
, mnuBold.Checked = Not mnuBold.Checked
, mnuBold.Checked = False, mnuBold.Checked = True]
[单选题]

设窗体上有一个标签Label1并编写了下面的过程

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

  If Button = 1 Then

    Label1 = "X=" & X & "   Y=" & Y

  End If

End Sub

程序运行后的效果是________


选项:[当按下鼠标右键并移动鼠标时,鼠标的位置坐标会同步显示在标签中, 当按下鼠标左键时,鼠标的位置坐标会同步显示在标签中, 当按下鼠标左键并移动鼠标时鼠标的位置坐标会同步显示在标签中, 当移动鼠标时,鼠标的位置坐标会同步显示在标签中]
[单选题]下列叙述中,正确的是________

选项:[文本框可以显示多行文本, 组合框是组合文本框和列表框的特性而成的控件,所以它具有二者的全部属性
, 框架控件的标题不能在程序运行过程中修改
, 标签中显示的文本在运行阶段不能改变
]
[单选题]

窗体上有Text1Text2两个文本框并有以下过程

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

    Dim ch As String

    ch = LCase(Chr(KeyCode))

    Text2.Text = Chr(Asc(ch) + 2)

End Sub

程序运行时Text1中输入了字母"D"Text2中显示的是________


选项:[D, f, d, F
]
[单选题]下列叙述中错误的是__________

选项:[图片框可以作为控件的容器, 由于直线控件没有Move方法,所以直线控件在运行阶段不能移动
, 文本框控件支持Change事件, 可以使用Print方法在图片框上输出文字]
[单选题]下面说法中错误的是________

选项:[为使显示到图像框中的图像能根据图像框的大小自动缩放,则应将图像框的Stretch属性值设置为True, 为使名称为Timer1的计时器控件能每隔2秒触发一次Timer事件则在程序代码中应写的语句是Timer1.Interval = 2000, 在设计阶段,把已复制到剪贴板上的图像粘贴到图片框或图像框中,可以将该图片装入图片框或图像框, 可以将计时器控件的Enabled属性设置为False,使其不能触发Timer事件]
[单选题]程序运行时若单击水平滚动条上滚动块右边的空白处,则其Value属性值的变化量为________

选项:[LargeChange属性的值, SmallChange属性的值, Max属性的值
, Min属性的值
]
[单选题]决定对象拖放模式的属性是________

选项:[DragOver, DragMode, DragDrop, DragIcon]
[单选题]下列关于键盘事件的说法中正确的是________

选项:[大键盘上"4"键的上档字符是"$",当同时按下Shift和大键盘上的"4" 键时,KeyPress事件过程的, 按下键盘上的任意一个键都会引发KeyPress事件
, 大键盘上的"1" 键和数字键盘上的"1"键的KeyCode码相同, KeyDownKeyUp的事件过程中有KeyAscii参数]
[单选题]下列不能作为容器”(即可以在其中放置其他控件的是________

选项:[窗体, 组合框
, 框架, 图片框]
[单选题]为了在程序运行时弹出一个菜单程序中应使用________

选项:[窗体的Show方法
, 窗体的ShowMenu方法
, 所单击控件的PopupMenu方法, 窗体的PopupMenu方法
]
[单选题]在计时器控件中Interval属性的作用是________

选项:[决定计时器事件产生的次数, 设置产生计时器事件的间隔, 决定是否响应用户的操作
, 设置计时器与窗体上边界之间的距离
]
[单选题]在刚建立的EXE工程中,工具箱窗口中没有的控件是________

选项:[通用对话框, 图像框, 驱动器列表框, 形状]
[单选题]

窗体上有1个名称为List1、含有3个项目的列表框1个名称为Text1的文本框以及1Interval属性值为1000的计时器控件Timer1。某人编制了以下程序,希望程序运行时,每隔1秒, List1中的3个项目能够依次在Text1中循环显示。

   Private Sub Timer1_Timer()

   Dim i As Integer

   Text1.Text = List1.List(i)

   i = i + 1

   If i = List1.ListCount Then

      i = 0

   End If

End Sub

运行程序发现有错误。以下正确的修改是________


选项:[Interval属性值改为100, 将语句Text1.Text = List1.List(i)i = i + 1交换位置
, 将语句Dim i As Integer修改为Static i As Integer
, If语句的条件修改为 i <= List1.ListCount
]
[单选题]

当复选框的Value属性值为1时,表示________


选项:[没有选中该复选框
, 该复选框不可见
, 选中该复选框
, 该复选框不可用]
[单选题]

在窗体上有一个Picture1图片框没有加载图片在当前文件夹下有一个位图文件pic02.bmp并有下面的程序代码

Dim HasPic As Boolean

Private Sub Picture1_Click()

    If HasPic Then

        Picture1.Picture = LoadPicture("")

    Else

        Picture1.Picture = LoadPicture("pic02.bmp")

    End If

    HasPic = Not HasPic

End Sub

关于这个程序运行时,下面叙述中正确的是________


选项:[第一次单击窗体,会清空图片框,再单击窗体,则在图片框中显示一个图片
, 第一次单击图片框,会在其中显示一个图片,再单击图片框,则删除图片, 第一次单击窗体,会在图片框中显示一个图片,再单击窗体,则删除图片, 第一次单击图片框,会清空图片框,再单击图片框,则在其中显示一个图片]
[单选题]下列叙述中错误的是________

选项:[可以使用Print方法在图片框上输出文字
, 文本框控件支持Change事件
, 由于直线控件没有Move方法,所以直线控件在运行阶段不能移动
, 图片框可以作为控件的容器
]
[单选题]程序运行时,当用鼠标点击滚动条两端的箭头按钮时,不会产生的结果是________

选项:[激活Change事件, 滚动框移动
, 改变Value属性的值, 激活Scroll事件
]
[单选题]在计时器控件中,Interval属性的作用是__________

选项:[决定计时器事件产生的次数
, 设置产生计时器事件的间隔
, 设置计时器与窗体上边界之间的距离, 决定是否响应用户的操作]
[单选题]用于设置计时器事件产生间隔的属性是________

选项:[Value
, Index
, Interval, Tag
]
[单选题]以下叙述中错误的是________

选项:[如果把一个菜单项的Enabled属性设置为False则该菜单项不可见, 如果要在菜单中添加一条分隔线,则应将该菜单项的Caption属性设置为"-", 在菜单标题中,由"&"所引导的字母指明了该菜单项的访问键, 下拉式菜单和弹出式菜单都用菜单编辑器建立]
[单选题]下列与鼠标拖放操作无关的是________

选项:[DragDrop事件, DragOver事件
, Drag方法, KeyPress事件]
[单选题]要使图片框P1中显示当前路径下的图片文件img1.jpg则应使用的语句是________

选项:[P1.Picture="img1.jpg"
, LoadPicture("img1.jpg"), P1.Image="img1.jpg"
, P1.Picture=LoadPicture("img1.jpg")
]
[单选题]以下关于图片框控件的说法中,正确的是________

选项:[可以通过调用图片框的Print方法在图片框中输出文本, 为使图像能自动适应图片框的大小,应将图片框的Stretch属性设置为False, cls方法可以清除图片框中装入的图片, 清空图片框控件中图形的方法之一是将其Picture属性的值设置为Null]
[单选题]设窗体上有2个框架,每个框架中有若干个单选按钮,下面叙述中正确的是________

选项:[如果某个框架的Enabled属性为False,则里面的单选按钮一定都是未选中状态, 窗体上所有单选按钮中只有1个可以被选中
, 每个框架中都有一个单选按钮可以被选中, 如果某个框架的Enabled属性为True,则里面单选按钮的Enabled属性也都为True]

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(0) dxwkbang
返回
顶部