1、第 2 章 VB的界面设计,19:01,CSE.CSLG.CN,2,窗体和控件是创建一个VB应用程序界面的基本构造模块 : 窗体是一种对象,它是放置其他所有控件的容器,其本身有着自己的属性、方法和事件。控件是放置在窗体中的对象,不同类型的控件有着不同的属性、方法和事件,以适用于不同的目的。,一个VB应用程序至少有一个窗体,19:01,CSE.CSLG.CN,3,2.1 窗体,窗体对象是创建VB应用程序的基础。是用户与应用程序进行交互操作的实际窗口。,19:01,CSE.CSLG.CN,4,2.1.1 窗体的属性,常用属性 1Name(属性窗口中为“(名称)”) 创建的对象名称,有默认的名。在程
2、序中,控件名是作为对象的标识而引用,不会显示在窗体上。2Caption:窗体标题 窗体标题是出现在窗体标题栏的文本内容。缺省名使用窗体名。,窗体对象命名规则:窗体名称以字母开头,可包含数字和下划线, 但不能含空格和标点符号,长度不得超过40个字符。,19:01,CSE.CSLG.CN,5,3BackColor与ForeColor 窗体的背景色与前景色。用鼠标单击该属性右侧带有“”省略号的按钮,可从弹出的调色板上选定颜色。 4BorderStyle:窗体边框风格 BorderStyle属性决定了窗体的主要特征,即窗体外观。该属性只能通过属性窗口设置。,19:01,CSE.CSLG.CN,6,5E
3、nabled:活动属性Enabled属性允许在程序运行时使对象成为有效或无效。取值有两种:True(有效,这是缺省值)和False(无效)。 6Visible:可视属性 Visible属性决定对象是否可见。True(可见,这是缺省值)和False(不可见)。 7Font:字体属性 Font属性用于设置或改变窗体上正文的字体、字型、字号等。,19:01,CSE.CSLG.CN,7,8Left、Top、Height和Width属性:决定窗体位置和大小 单位均为Twip(缇)。Twip是长度单位, 1440Twip = 1英寸。9Icon:图标属性 定义运行时窗体处于最小化时显示的图标。所加载的文件
4、必须具有.ico扩展名和格式。,大部分属性既可以通过属性窗口设置,也可以在运行时由代码来 设置;但有些属性只能在属性窗口设置或者只能通过程序代码设置。,19:01,CSE.CSLG.CN,8,2.1.2 窗体的方法,窗体的方法也就是窗体所具有的行动方式。窗体上常用的方法有:,19:01,CSE.CSLG.CN,9,2.1.3 窗体的事件,窗体可以响应的常用事件:1Activate/Deactivate事件 每当一个窗体被激活时,就会产生一个Activate事件;当另一个窗体或应用程序被激活时,原先处于活动的窗体就会产生Deactivate事件。 2Load/Unload事件 窗体被装载时发生L
5、oad事件;当使用控制菜单中的“关闭”命令或用Unload语句关闭该窗体时,发生从屏幕上卸载窗体的Unload事件。,19:01,CSE.CSLG.CN,10,3Click/DblClick事件单击窗体的空白区域或无效控件时发生Click事件;双击窗体的空白区域或无效控件时发生DblClick事件。4Resize事件当窗体第一次显示或窗口状态发生改变。,19:01,CSE.CSLG.CN,11,2.1.4 与窗体相关的操作语句,1Load装载窗体语句 功能:把窗体(或其他对象)载入内存,但并不显示它;语句格式:Load Object (Object是对象名) 注意:该方法将引发窗体的Load事
6、件。2Unload卸载窗体语句 功能:把窗体(或其他对象)从内存卸载; 语句格式:Unload Object (Object是对象名) 注意:该方法将引发窗体的UnLoad事件。,19:01,CSE.CSLG.CN,12,3End语句 功能:终止应用程序的执行,并从内存卸载所有窗体 ;语句格式: End 注意:Unload语句与End语句的区别。Unload语句是卸载当前窗体,并引发对象的Unload事件;End语句将终止应用程序的执行,并从内存卸载所有窗体。,19:01,CSE.CSLG.CN,13,【例2.1】窗体显示与隐藏的示例程序,在窗体1的“代码编辑器”窗口中输入以下程序代码: Pr
7、ivate Sub Form_Click ( )Form2.Show 显示窗体2Form1.Hide 隐藏窗体1 End Sub Private Sub Form_Load ( )Label1.FontName = “幼圆” 将标签对象字体设为幼圆Label1.FontBold = True 将文字置为粗体 End Sub,在窗体2的“代码编辑器”窗口中输入以下程序代码: Private Sub Form_Click ( )Form2.Hide 隐藏窗体2Form1.Show 显示窗体1 End Sub Private Sub Form_Load ( )Caption = “窗体示例” 改变窗
8、体2的标题Label1.FontItalic = True 将标签文字设置为斜体End Sub,19:01,CSE.CSLG.CN,14,【例2.2】Unload与End使用示例,Private Sub CmdClose_Click()Unload Me Me是系统保留字,代表当前窗体 End Sub Private Sub Form_Unload() 在此输入程序结束前,需要执行的代码End End Sub,19:01,CSE.CSLG.CN,15,4Print方法 功能:可以将文本输出到窗体、图片框或打印机上; 语句格式: 对象名.Print 输出列表 注意: (1)对象名可以是窗体(Fo
9、rm)、图片框(PictureBox)或打印机(Printer)的名称。省略对象名时,将输出内容输出到当前窗体上。例如:Print “VB程序设计” 在当前窗体上输出Picture1.Print “ VB程序设计” 在图片框上输出(2)如果省略输出列表,则输出一个空行。例如: Private Sub Form_Click()Print “VB“Print 输出空行 换行作用Print “程序设计“End Sub,19:01,CSE.CSLG.CN,16,(3)输出列表的各项之间可以用逗号“,”或分号“;”分隔。当采用逗号作分隔符时,每个输出项宽度为14个字符;当采用分号作分隔符时,每个输出项以
10、紧凑格式输出,即数值输出项的尾部自动加一个符号位(正数为空格)。例如: Private Sub Form_Click()a = 3: b = 4Print a, b, a + bPrint a, , bPrint “a=“; a, “b=“; b 字符串输出用于说明End Sub(4)若语句行末尾没有分隔符,则输出当前输出项后自动换行。若以分号或逗号结束,则输出当前输出项后不换行,下一个Print语句输出的内容将输出在同一行上。,19:01,CSE.CSLG.CN,17,2.2 VB常用控件,控件是包括在窗体对象内的对象;每种类型的控件都有自己的一套属性、方法和事件 ;在VB应用程序的设计阶段
11、,主要任务是建立用户界面;,19:01,CSE.CSLG.CN,18,2.2.1 控件的基本操作,建立控件 方法1:在工具箱中的控件图标上单击,然后在窗体上用鼠标拖放出所需控件的大小。方法2:在工具箱中的控件图标上双击,在窗体中央就自动出现一个缺省大小的控件,然后根据需要移动控件或更改控件的大小。,19:01,CSE.CSLG.CN,19,选中控件 单击窗体上放置的控件,即选中该控件。 如果需要同时选中多个控件,可按住Ctrl或Shift键再单击需选中的多个控件; 在窗体上用鼠标拖曳出一个矩形框,则此矩形框所包围的控件全部被选中。,选中多个控件之后,在 属性窗口中只显示这些 控件共同具有的属性
12、。 如果修改属性值,那些 被同时选中的所有控件 的属性值都会发生相应 的改变。,19:01,CSE.CSLG.CN,20,改变控件大小 选中控件后,将出现8个小方块。将鼠标指针移至控件四周的某个小方块,拖放鼠标即可改变控件大小。在控件的属性窗口中修改Width和Height的属性值。 通过VB工具栏的“格式”中的命令项协调控件的位置。,19:01,CSE.CSLG.CN,21,删除、移动控件 删除窗体中的控件:先选中要删除的控件,然后按Delete键。移动窗体中的控件:先选中控件,然后将鼠标指针移至控件上,按住左键拖动鼠标即可改变控件位置;如果要精确设置控件位置,可在控件的属性窗口中修改Top
13、和Left的属性值。,19:01,CSE.CSLG.CN,22,复制控件 选中控件;执行“编辑”菜单中的“复制”命令或者单击工具栏上的“复制”按钮; 执行“编辑”菜单中的“粘贴”命令或者单击工具栏上的“粘贴”按钮。,19:01,CSE.CSLG.CN,23,2.2.2 控件的焦点和Tab键序,焦点 焦点就是接收用户鼠标或键盘的能力。 一个对象具有焦点时,产生GotFocus事件;对象失去焦点时,产生LostFocus事件。注意: (1)当一个对象的Enabled和Visible属性均为True时,才能接收焦点。设置一个对象焦点时,可以在程序代码中使用SetFocus方法。 (2)框架(Fram
14、e)、标签(Label)、菜单(Menu)、直线(Line)、形状(Shape)、图像框(Image)和计时器(Timer)等都不能接收焦点。 (3)窗体只有先用Show方法显示后,然后才能使用SetFocus方法对该窗体或窗体上的控件设置焦点。,19:01,CSE.CSLG.CN,24,Tab顺序 系统自动按顺序为窗体中的每个控件指定一个Tab键序。Tab键序反映在控件的TabIndex属性中,其属性值为0,1,2,。,19:01,CSE.CSLG.CN,25,2.2.3 控件的公共属性,1. Name 控件对象的名称 2. Caption 控件的标题 3. Enabled 决定控件是否对用
15、户产生的事件做出响应 4. Visible 决定控件是否可见,默认值为True 5. Height,width,Top和Left Height和width属性确定控件的高度和宽度。Top表示控件到窗体顶部的距离,Left表示控件到窗体左边框的距离。,Name值不能在应用程序中修改,19:01,CSE.CSLG.CN,26,6. BackColor和ForeColor 设置控件的背景色和前景色 。 7.FontName,FontSize,FontBold,FontItalic,FontStrikethru和FontUnderline 件中显示文本所用的字体、字号、是否粗体、是否斜体、是否加删除线
16、和是否带下划线 8. Font 控件中显示的文本所用字体的样式、大小、字体效果等,19:01,CSE.CSLG.CN,27,常用控件,文本框控件(TextBox) 标签(Label) 命令按钮(CommandButton) 单选按钮(OptionButton)和复选按(CheckButton) 框架(Frame) 列表框(ListBox) 组合框(ComboBox) 图片框(PictureBox)和图像框(Image) 定时器(Timer),19:01,CSE.CSLG.CN,28,2.2.4 文本框控件(TextBox),文本框(TextBox)是一个文本编辑区域,用户可以在该区域中输入、编
17、辑和显示文本内容。 常用属性 1.Text 返回设置控件中包含的文本 2. MultiLine 返回或设置一个值,指示文本框控件是否能够接受和显示多行文本。 3. Alignment 设置或返回一个值,决定文本在控件中的对齐方式,缺省值为0,文本左对齐;若为1,文本右对齐;若为2,文本居中。 4. MaxLength 返回或设置一个值,它指出在文本框控件中文本的最大长度。 5. PasswordCha 确定在文本框中是否显示用户输入的字符,19:01,CSE.CSLG.CN,29,事件(1)Change事件:当文本框的Text属性发生变化,即文本的内容发生变化时,就引发本事件。(2)LostF
18、ocus事件:当鼠标指针(插入点)离开文本框时,引发本事件。(3)Gotfacus事件:文本框获得焦点时,引发本事件。(4)Keypress事件:在文本框中输入一个ASCII码字符时,引发本事件。,19:01,CSE.CSLG.CN,30,方法 (1)Refresh方法:刷新文本框。(2)Setfocus方法:设置焦点。通过本方法可使指定的文本框获得焦点,也即成为当前文本框。获得焦点的文本框中具有闪动的光标。,19:01,CSE.CSLG.CN,31,2.2.5标签(Label),标签(Label)主要用来显示比较固定的提示性信息。 常用属性 1. Alignment 设置标签中文本的对齐方式
19、,共有3个可选项:0(左对齐,默认值),l(右对齐)和2(居中)。 2. AutoSize 确定标签的大小是否根据标签的内容自动调整大小,默认值为False 。 3. BorderStyle 设置标签的边框,可以取两种值,0表示无边框(默认值),l表示有边框。 4. BackStyle 设置标签的背景模式,共有两个选项,1表示标签将覆盖背景(默认值),0表示标签是“透明”的。,19:01,CSE.CSLG.CN,32,事件 (1)Click(单击) (2)DblClick(双击)方法 (1)Refresh方法:刷新标签框。 (2)Move方法:移动标签。,19:01,CSE.CSLG.CN,3
20、3,2.2.6命令按钮(CommandButton),命令按钮(CommandButton)用于接收用户的操作信息,并引发应用程序的某个操作。 常用属性 1. Default 用于设置“默认按钮” 。 2. Cancel 用于设置“取消按钮” 。 3. Style 设置命令按钮的外观 。,19:01,CSE.CSLG.CN,34,事件 命令按钮最常用的事件是Click(单击)事件,但不支持DblClick(双击)事件。方法 命令按钮常用的方法是SetFocus方法 。,19:01,CSE.CSLG.CN,35,【例2.3】设计程序,实现两个文本框内容的交换 编写程序代码: Private Su
21、b Command1_Click() “交换”按钮t = text1TextText1Text = Text2TextText2Text = t End Sub,19:01,CSE.CSLG.CN,36,【例2.4】在窗体上建立两个文本框和两个命令按钮 编写程序代码: Private Sub Text1_Change( ) 文本框1内容改变时,时间发生Text2Text=Text1Text End SubPrivate Sub Command1_Click( ) “重新输入”按钮Text1Text= “Text1SetFocus End SubPrivate Sub Command2_Clic
22、k( ) “退出程序”按钮End End Sub,19:01,CSE.CSLG.CN,37,2.2.7单选按钮(OptionButton)和复选按钮(CheckButton),命令按钮(CommandButton)用于接收用户的操作信息,并引发应用程序的某个操作。 常用属性 1. Value 用来表示单选按钮或复选按钮的状态 在单选按钮中:Value=0(False)表示没被选择Value=1(True)表示被选择在复选框中: Value=0表示没有选择该复选框Value=1表示选中该框Value=2表示该复选框被禁用(灰色),19:01,CSE.CSLG.CN,38,2. Alignment
23、 用来设置指定复选框或单选按 钮的显示方式 Alignment=0(默认)控件居左,标题在控件右侧显示。Alignment=1 控件居右,标题在控件左侧显示。 3. Style 用来设置指定复选框或单选按钮的 显示方式 Style=0(默认)标准方式,即同时显示控件和标题。Style=1 图形方式,控件用图形的样式显示。事件单选按钮和复选按钮均可响应单击(Click)事件。,19:01,CSE.CSLG.CN,39,【例2.5】单选按钮和复选按钮应用示例 事件过程如下: Private Sub ChkCxT_Click() Private Sub ChkXHX_Click() “粗斜体”复选按
24、钮 “下划线”复选按钮 If ChkCXT.Value = 1 Then If ChkXHX.Value = 1 ThenTxt1.FontBold = True Txt1.FontUnderline = TrueTxt1.FontItalic = True Else Else Txt1.FontUnderline = FalseTxt1.FontBold = False End If Txt1.FontItalic = False End Sub End If End SubPrivate Sub OptHT_Click() Private Sub OptST_Click( ) “黑体”复选
25、按钮 “宋体”复选按钮 Txt1.FontName = “黑体” Txt1.FontName = “宋体“ End Sub End Sub,19:01,CSE.CSLG.CN,40,2.2.8框架(Frame),框架控件可从功能上把在其范围之内的相关控件组织在一起。框架的属性、可响应的事件与窗体基本相同,方法有Move、Refresh等。,将控件置于框架中的两种方法(推荐用第一种) (1) 先画出框架,再将其它控件放到框架中。(2) 若先画控件后画框架,可“剪切”框架外的控件再“粘贴”到框架中。,19:01,CSE.CSLG.CN,41,2.2.9列表框(ListBox),列表框(ListBo
26、x)用于列出可供用户选择的项目,用户可从中选择一个或多个选项。 常用属性 List 该属性是一个字符 型数组,用于存放列表框的表项。 2. ListCount 返回列表框中 表项的数目 3. ListIndex 返回已选定表 项的索引,19:01,CSE.CSLG.CN,42,4. Text 存放当前选定表项的文本内容5. Selected 本属性是一个逻辑值,表示列表框中某一表项是否被选中 6. Sorted 设置列表框中各表项在运行时是否按字母顺序排列 7. Columns 确定列表框是水平滚动还是垂直滚动,以及列表中表项的显示方式8. Style 确定列表框控件的样式,19:01,CSE
27、.CSLG.CN,43,事件 列表框可接收Click,DblClick等事件。 方法(1)AddItern:把一个列表项加入到列表框中。 语法格式为: 对象AddItem 列表项,索引(2)Clear和RemoveItem :用于删除表项。 语法格式如下: 对象 Clear 删除全部表项 对象 RemoveItem 索引值 删除由索引指定的表项,19:01,CSE.CSLG.CN,44,【例2.6】 事件过程如下: Private Sub Form_Load() 将表项添加到列表框中List1.AddItem “北京“List1.AddItem “上海“List1.AddItem “天津“Li
28、st1.AddItem “重庆“List1.AddItem “太原市“List1.AddItem “石家庄“List1.AddItem “武汉市“ End Sub,19:01,CSE.CSLG.CN,45,Private Sub List1_Click()List2.AddItem List1.Text 在列表框2中添加选中的表项List1.RemoveItem List1.ListIndex 删除列表框1中选中的表项 End SubPrivate Sub Command1_Click()End End Sub,19:01,CSE.CSLG.CN,46,2.2.10组合框(ComboBox),
29、组合框实际上是列表框和文本框的组合。用户自己能输入列表中不包括的内容。 常用属性 style 该属性取值为0,1或2,分别决定了组合框的3种不同类型,即下拉组合框(默认)、简单组合框和下拉列表框 。,19:01,CSE.CSLG.CN,47,2. Text 该属性的值是用户所选定的表项或直接从文本框输入的表项。 事件 1.第种组合框可响应双击(DblClick)事件; 2. 和两种组合框可响应单击(Click)事件,同时在编辑表项时可引发Change事件。 方法 用于列表框的方法,也适用于组合框。,19:01,CSE.CSLG.CN,48,2.2.11图片框(PictureBox)和图像框(I
30、mage),图片框(PictureBox)和图像框(Image)都用于显示图形,它们可以显示.bmp(位图),.ico(图标),.wmf(图元),.gif和.jpg等类型的图形文件。常用属性 1. Picture 用于设置在图片框中要显示的图像文件 2. AutoSize 确定图片框如何与图形相适应 3. Stretch属性(适用于图像框) 设置加载的图形是否可自动调整尺寸以适应图像框的大小,图片框可以作为其他控件的容器,可在其中放置控件、输出文字 、图形等。 (2) 图像框不能作为其他控件的容器,但可在其中显示图形。(3) 图像框的Stretch属性,使图像框会自动调整大小以适应图形大小 ,
31、而图片框则不能。,19:01,CSE.CSLG.CN,49,方法 (1)Cls方法 使用Cls方法,可以清除图片框中的图形与文字。 例如: Picture1.cls(2)Print方法 使用Print方法,可以在图片框中输出文字。(3)还可以使用Pset、Point、Line、Circle等方法绘制图形。,这些方法只能用于图片框,不能用于图像框,19:01,CSE.CSLG.CN,50,【例2.7】图片框应用示例 程序代码如下: Private Sub Command1_Click() “加载图形”按钮Picture1.Picture = LoadPicture(“d:pictureearth
32、.wmf“) End SubPrivate Sub Command2_Click() “删除图形”按钮Picture1.Picture = LoadPicture(“ “) End SubPrivate Sub Command3_Click() “退出”按钮EndEnd Sub,19:01,CSE.CSLG.CN,51,2.2.12定时器(Timer),定时器(Timer)也是工具箱中的一个标准控件,它每隔一定的时间产生一次Timer事件(或称报时) 。 常用属性 1. Enabled 确定定时器是否可用 2.Interval 设置两个Timer事件之间的时间间隔,其值以毫秒(1ms = 11
33、000s)为单位,取值范围为065535 事件 定时器控件只响应一个Timer事件。,19:01,CSE.CSLG.CN,52,【例2.8】建立一个电子时钟 程序代码如下:Private Sub Timer1_Timer ( )TxtClock.Text = Time Time是VB系统时间函数 End Sub,19:01,CSE.CSLG.CN,53,2.3 程序示例,【例2.9】多控件组合运用,19:01,CSE.CSLG.CN,54,习 题 二,P38 一、 2,3,4 二、 1,2,4,6,8,10,16,20 三、 1,2,3 P68 一、1,4,6 二、1,3,4,6,7,8,10,18,20,21,