第八章内部控件课件

上传人:无*** 文档编号:241667297 上传时间:2024-07-14 格式:PPT 页数:105 大小:1,004KB
返回 下载 相关 举报
第八章内部控件课件_第1页
第1页 / 共105页
第八章内部控件课件_第2页
第2页 / 共105页
第八章内部控件课件_第3页
第3页 / 共105页
点击查看更多>>
资源描述
主讲:冯主讲:冯 元元Visual Basic 程序设计程序设计1第八章第八章 内部控件内部控件8.1 图形与图像类控件图形与图像类控件8.2 滚动条、框架与定时器滚动条、框架与定时器8.3 提供选项的控件提供选项的控件8.4 鼠标与键盘事件鼠标与键盘事件8.5 控件数组控件数组8.6 菜单菜单28.1 图形与图像类控件图形与图像类控件本节知识点本节知识点:直线控件(Line)形状控件(Shape)图像控件(Image)图片框控件(PictureBox)38.1 图形与图像类控件图形与图像类控件v已学过的内部控件已学过的内部控件:窗体窗体(Form)、文本框、文本框(TextBox)、标签、标签(Label)、命、命令按钮令按钮(CommandButton)。v本章将要学习的新内部控件本章将要学习的新内部控件:直线直线(Line)、形状、形状(Shape)、图像、图像(Image)、图片框、图片框(PictureBox)。滚动条滚动条(HScrollBar、VScrollBar)、框架、框架(Frame)、定、定时器时器(Timer)。复选框复选框(CheckBox)、单选框、单选框(OptionButton)、列表、列表框框(ListBox)、组合框、组合框(ComboBox)。48.1 图形与图像类控件图形与图像类控件v控件的学习方法控件的学习方法:控件的功能。控件的功能。属性、方法、事件。属性、方法、事件。熟悉内部控件的熟悉内部控件的常用常用属性、方法、事件。属性、方法、事件。知道知道如何查找内部控件的文档如何查找内部控件的文档。注意内部控件注意内部控件事件如何发生事件如何发生及及发生的顺序发生的顺序。Name、Left、Top、Width、Height、Visible、Enabled、Move、Click、DbClick。58.1 图形与图像类控件图形与图像类控件1、直线控件直线控件(Line)v功能功能:在窗体上显示一条直线,用来将窗体上的控件进行视觉上的分组。由于该控件只起装饰作用,所以没有方法和事件没有方法和事件,也没有也没有Enable属性属性。vName属性属性:对象名。vX1、Y1、X2、Y2:这四个属性决定了直线控件的两个端点在窗体上的坐标值。可使用它们来调整直线控件的长短与位置。68.1 图形与图像类控件图形与图像类控件vVisible属性属性:决定直线控件是否可见。该属性取值为“True”时可见,为“False”时不可见。vBorderStyle属性属性:该属性决定了直线的线型。取值范围0-6,整型。不同属性值的意义见表8.1。vBorderWidth属性属性:线条宽度,单位像素像素。取值范围:不小于1的整数。注意注意:除了“实线”和“透明”线型外,对于其他线型该属性值一定要设为“1”。也就是说不可能有粗点划线、粗虚线等。78.1 图形与图像类控件图形与图像类控件2、形状控件形状控件(Shape)v功能功能:显示多种不同的形状,用来装饰窗体。形状控件有Move方法、无事件。vName属性属性:对象名。vLeft、Top、Width、Height、Visible属性属性:这些属性决定形状控件的大小、位置与可见性,用法与其他控件相同,形状控件无无Enabled属性属性。88.1 图形与图像类控件图形与图像类控件vShape属性属性:决定控件以什么形状显示以什么形状显示。取值范围:0-5,整型。取不同值时对应的形状见表8.2。注意控件实际大小控件实际大小与显示形状大小显示形状大小的不同。vBorderStyle属性属性:决定形状控件的边框样式,取值与直线控件的BorderStyle属性相同。vBorderWidth属性属性:决定形状控件的边框宽度,单位为像素。与直线控件相似。vFillStyle属性属性:决定形状控件内部的填充样式。取值范围:0-7,整数。取不同值时对应的样式见表8.3。98.1 图形与图像类控件图形与图像类控件v例例8.1 窗体上有一个形状控件和一个命令按钮。编写按钮的Click事件过程,要求:连续单击按钮,形状控件的形状与填充样式会交替循环改变.Private Sub Command1_Click()Static intShape As Integer Static intStyle As Integer Static b As Boolean If b Then intShape=intShape+1 If intShape 5 Then intShape=0 End If b=Not b Shape1.Shape=intShape 改变形状 Else intStyle=intStyle+1 If intStyle 7 Then intStyle=0 End If b=Not b Shape1.FillStyle=intStyle 改变填充样式 End IfEnd Sub108.1 图形与图像类控件图形与图像类控件3、图像控件图像控件(Image)v功能功能:用来在窗体上显示保存在图形文件中的图像保存在图形文件中的图像。支持的图形文件格式有:位图文件(.bmp)Windows元文件(.wmf)增强型元文件(.emf)图标文件(.ico)以 .jpg、.Gif为扩展名的图形文件。118.1 图形与图像类控件图形与图像类控件vName属性属性:对象名。vLeft、Top、Width、Height、Visible属性属性:用法与其他控件相同。vEnabled属性属性:属性值为“False”时,图形控件的外观与属性值为“True”时相同,只是不能响应Click和DblClick事件。vBorderStyle属性属性:此属性值为“0”时,无边框;为“1”时有边框。128.1 图形与图像类控件图形与图像类控件vPicture属性属性:决定图像控件显示图像的来源。如果不给此属性赋值,则图像控件不会显示任何图形。为Picture属性赋值的方法:在设计时在设计时:在属性窗口中点击Picture属性栏中的按纽,打开“加载图片”对话框,选取所要的图片,按确定按纽。在程序中在程序中,可使用内部函数LoadPicture()把一个图像文件赋给该属性。如:img1.Picture=LoadPicture(“c:windowssetup.bmp”)138.1 图形与图像类控件图形与图像类控件vStretch属性属性:如果此属性值为“True”,则当所显示图像的原始大小与控件大小不同时,会自动缩放图像填充整个控件.如果此属性值为“False”,图像会以原始大小显示,如果控件比图像小,会使图像显示不完整。vMove方法方法:用法与其他控件相同。vClick事件事件、DblClick事件事件:用法和其他控件一样。148.1 图形与图像类控件图形与图像类控件4、图片框控件图片框控件(PictureBox)v功能功能:图片框除具有图像控件的所有功能外,还有如下功能:可作控件的容器。支持绘图方法,可绘图。通过Align属性定位于窗体的一侧。158.1 图形与图像类控件图形与图像类控件vName属性属性:对象名。vLeft、Top、Width、Height、Visible、Enabled属属性性:这些属性与其他控件的意义相同。vBorderStyle属性属性:值为“0”时无边框,为“1”有。vPicture属性属性:与图像控件的该属性相同。vAutoSize属性属性:属性值为“True”时,控件会自动控件会自动适应图片的大小适应图片的大小;为“False”时,控件大小固定不变。168.1 图形与图像类控件图形与图像类控件vAlign属性属性:决定图片框在窗体上的位置。取值范围:0-4,整型。取不同值时的含义见表8.4。由于图片框可自动位于窗体的某条边上可自动位于窗体的某条边上,所以可用来制作工具栏和状态栏。vMove方法方法:用法与其他控件相同。除此之外,图片框还支持多个绘图方法。vClick事件事件、DblClick事件事件:用法与其他控件一样。vChange事件事件:当图片框的Picture属性值变化时属性值变化时,引发这个事件。178.1 图形与图像类控件图形与图像类控件5、使用图片框控件作控件容器使用图片框控件作控件容器v图片框可以作为控件容器控件容器,像窗体一样容纳其他控件。具有这种功能的控件还有框架框架(Frame)。v图片框和框架可以进行多层嵌套多层嵌套。也就是说,一个容器内即可以包含其他控件,也可以包含图片框和框架等容器控件。v如果一个控件被放置在容器控件中,无论嵌套多深无论嵌套多深在程序中对它进行操作时,与直接放置在窗体上时与直接放置在窗体上时是一样的是一样的。188.1 图形与图像类控件图形与图像类控件v控件容器的作用和特点控件容器的作用和特点:移动容器控件,被包容的控件会跟随移动跟随移动。隐藏容器控件,被包容的控件也不可见也不可见。被包容的控件的Left和Top属性值是其所在容器控件内部的坐标内部的坐标。198.1 图形与图像类控件图形与图像类控件v例子例子:使用图片框来创建一个工具栏。使用图片框来创建一个工具栏。在窗体上放置一个图片框,然后将在窗体上放置一个图片框,然后将Align属性置为属性置为1,这时图片框会自动地附着在窗体标题栏下面。,这时图片框会自动地附着在窗体标题栏下面。单击工具箱中的命令按纽图标,然后在图片框中拖单击工具箱中的命令按纽图标,然后在图片框中拖动添加一个按纽控件。这样添加的按纽是不能通过动添加一个按纽控件。这样添加的按纽是不能通过拖动方法移出图片框的。拖动方法移出图片框的。在图片框中添加多个按纽控件,调整控件的大小和在图片框中添加多个按纽控件,调整控件的大小和位置,设置相关属性,然后编写事件过程。位置,设置相关属性,然后编写事件过程。208.1 图形与图像类控件图形与图像类控件在按纽控件上添加图标在按纽控件上添加图标:将按纽对象的Style属性置“1”,将Caption属性值清空,然后使用Picture属性添加图标文件。为控件设置提示信息为控件设置提示信息:即在运行时,当鼠标指针停留在控件上片刻后,会显示一个简要介绍控件功能的提示窗口。方法:将控件的TooltipText属性值设置为要显示的信息。21作业:作业:v制作教材制作教材182页图页图8.4中的工具条,并在窗体中的工具条,并在窗体上添加图像控件,点击不同按钮时,在图像上添加图像控件,点击不同按钮时,在图像控件中显示不同的图像。控件中显示不同的图像。228.2 滚动条、框架与定时器滚动条、框架与定时器本节知识点本节知识点:滚动条控件(HScrollBar、VScrollBar)框架控件(Frame)定时器控件(Timer)238.2 滚动条、框架与定时器滚动条、框架与定时器1、滚动条控件滚动条控件(HScrollBar、VScrollBar)v滚动条控件分为水平滚动条水平滚动条(HScrollBar)和垂直滚垂直滚动条动条(VScrollBar)。两者除了称呼和放置方向不同外,其他都一样。因此,下面介绍的所有属性、方法和事件对两者都适用。v滚动条由两端带有箭头的滚动按纽滚动按纽、中间的滚动块滚动块和空白区域空白区域组成。v用途用途:滚动条一般用来上下、左右地滚动文字和图形,也可以用来进行其他内容的输入输出。248.2 滚动条、框架与定时器滚动条、框架与定时器vName属性属性:对象名。vLeft、Top、Width、Height、Visible、Enabled属性属性:这些属性与其他控件的意义相同。vValue属性属性:反映滚动条的当前值。滚动块的位置大体上可以反映这个属性的值,单击滚动按纽单击滚动按纽、单击单击空白区域空白区域、拖动滚动块拖动滚动块,都会改变这个属性的值。vMin属性属性:决定了当滚动块处于顶端或最左端位置时,滚动条Value属性的值。即滚动范围的下限即滚动范围的下限。258.2 滚动条、框架与定时器滚动条、框架与定时器vMax属性属性:决定了当滚动块处于底端或最右端位置时,滚动条Value属性的值。即滚动范围的上限滚动范围的上限。Min属性和Max属性取值范围:-3276832768。vSmallChange属性属性:该属性值是当用户单击滚动箭头单击滚动箭头按纽时按纽时,Value属性值的变化量。vLargeChange属性属性:该属性值是当用户单击滚动箭头单击滚动箭头之间的空白区域时之间的空白区域时,Value属性值的变化量。上述两个属性的取值范围:1-32768,整数。通常,LargeChange属性的值要大于SmallChange属性的值。268.2 滚动条、框架与定时器滚动条、框架与定时器vChange事件事件:滚动条不支持Click和DblClick事件。当滚动条的Value属性值发生变化时,引发Change事件。能够引起Value属性值改变的原因有:单击滚动条箭头按纽。单击空白区域。拖动滚动块。在程序中重设了Value属性的值。vScroll事件事件:在滚动条的滚动块被拖动的过程中,引发此事件。在使用鼠标拖动滚动条滚动块的过程中,会连续地引发多个会连续地引发多个Scroll事件事件。278.2 滚动条、框架与定时器滚动条、框架与定时器v例子例子:设计如下界面,当滚动条Value属性值变化时显示在文本框中。288.2 滚动条、框架与定时器滚动条、框架与定时器Private Sub HScroll1_Change()Text1.Text=HScroll1.ValueEnd Sub Private Sub HScroll1_Scroll()Text1.Text=HScroll1.ValueEnd Sub属性设置:Min=1;Max=1000SmallChange=10;LargeChange=10029作业:作业:v在窗体上放置在窗体上放置2个文本框和一个垂直滚动条,个文本框和一个垂直滚动条,当单击滚动箭头或拖动滚动块时,当单击滚动箭头或拖动滚动块时,2个文本框个文本框可以同时上下移动。可以同时上下移动。308.2 滚动条、框架与定时器滚动条、框架与定时器2、框架、框架控件控件(Frame)v框架是一个左上角有标题文字的方框。v功能功能:对窗体上的控件进行视觉上的分组,使窗体上的内容更有条理。v希望被框架围起来的控件可以叠放在框架控件上面,产生一种被框架围起来的视觉效果。v与图片框一样,框架也可以作为控件容器控件容器。318.2 滚动条、框架与定时器滚动条、框架与定时器vName属性属性:对象名。vLeft、Top、Width、Height、Visible、Enabled属性属性:这些属性与其他控件的意义相同。注意注意:如容器控件的Enabled属性值为“False”,则置于其内部的控件都不能响应用户的鼠标和键盘操作.vCaption属性属性:该属性的值就是框架左上角的标题文字。与标签控件相似,可在这个属性值中使用“&”设置快捷键。vBorderStyle属性属性:该属性值为“0”时,框架不显示边框与标题文字;值为“1”时,显示边框和文字。328.2 滚动条、框架与定时器滚动条、框架与定时器3、定时器控件定时器控件(Timer)v功能功能:定时器控件又称为定时器控件又称为“计时器计时器”,在程序运行,在程序运行过程中它会像时钟一样不停地计时,当到达预先设过程中它会像时钟一样不停地计时,当到达预先设定的时间,就会自动引发一个名为定的时间,就会自动引发一个名为Timer的事件的事件。v一个窗体可使用多个定时器一个窗体可使用多个定时器,它们的时间相互独立,它们的时间相互独立.v定时器定时器运行时不可见运行时不可见,因此没有,因此没有Visible属性。属性。v定时器定时器大小固定大小固定,没有,没有Width和和Height属性。属性。v定时器没有任何方法。定时器没有任何方法。338.2 滚动条、框架与定时器滚动条、框架与定时器vName属性属性:对象名。vLeft属性属性、Top属性属性:定时器在窗体上的位置。vEnabled属性属性:相当于定时器的开关定时器的开关。当属性值为“True”时,打开定时器;为“False”时,关闭定时器。vInterval属性属性:该属性值为一整数,取值范围:165535,表示以毫秒为单位的时间间隔以毫秒为单位的时间间隔。初始设定一个Interval属性值并打开定时器后,便开始计时,以后每隔这个时间间隔都会引发一次每隔这个时间间隔都会引发一次Timer事件事件。348.2 滚动条、框架与定时器滚动条、框架与定时器vTimer事件事件:当计时时间间隔到达时,定时器自动触定时器自动触发这个事件发这个事件。是定时器控件支持的唯一事件。v例子例子:窗体上自动移动的按钮。358.3 提供选项的控件提供选项的控件本节知识点本节知识点:复选框控件(CheckBox)单选框控件(OptionButton)列表框控件(ListBox)组合框控件(ComboBox)368.3 提供选项的控件提供选项的控件1、复选框控件复选框控件(CheckBox)v功能功能:复选框控件是提供选择项的控件。其外观是一个小方框后接一串文字。v复选框控件的选择状态:方框中有对勾,表示该项被选中。方框中空白,表示未被选中。方框中为灰色并有对勾,表示此选项暂时无效。v通常情况下,窗体上的复选框会按功能进行分组。在同一组中,可以选择多个,也可一个不选。378.3 提供选项的控件提供选项的控件v用户可以通过下列方法使复选框用户可以通过下列方法使复选框在选与不选之间切换在选与不选之间切换:直接用鼠标点击。直接用鼠标点击。使用复选框标题文字中的快捷键使用复选框标题文字中的快捷键(Alt+字母字母)。将焦点移至复选框控件上,然后按空格键。将焦点移至复选框控件上,然后按空格键。388.3 提供选项的控件提供选项的控件vName属性属性:对象名。对象名。vLeft、Top、Width、Height、Visible、Enabled属性属性:这些属性与其他控件的意义相同。这些属性与其他控件的意义相同。vCaption属性属性:属性的值是复选框旁边的标题文字。:属性的值是复选框旁边的标题文字。可在这个属性值中使用可在这个属性值中使用“&”设置快捷键。设置快捷键。vStyle属性属性:该属性值为:该属性值为“0”时,复选框以标准样式时,复选框以标准样式显示;值为显示;值为“1”时,以命令按纽样式显示,按下表时,以命令按纽样式显示,按下表示选中,弹起表示未选中。示选中,弹起表示未选中。vAlignment属性属性:该属性值为:该属性值为“0”时,标题文字在方时,标题文字在方框的右边;值为框的右边;值为“1”时,标题文字在方框的左边。时,标题文字在方框的左边。398.3 提供选项的控件提供选项的控件vValue属性属性:该属性值决定该属性值决定复选框的选中状态复选框的选中状态。取值。取值范围:范围:0-2,整型。取不同值时的含义见表,整型。取不同值时的含义见表8.6。这里。这里有两点需要注意:有两点需要注意:只能通过程序将值只能通过程序将值2赋给赋给Value属性,用户的操作不会属性,用户的操作不会导致复选框变为灰色。导致复选框变为灰色。Value属性为属性为2时复选框变为灰色与时复选框变为灰色与Enabled属性为属性为False时变为灰色的含义是完全不同的。时变为灰色的含义是完全不同的。vMove方法方法:用法与其他控件相同。:用法与其他控件相同。vClick事件事件:除了用户鼠标单击动作外,其他任何可:除了用户鼠标单击动作外,其他任何可改变改变Value属性的动作或程序语句都会引发此事件。属性的动作或程序语句都会引发此事件。408.3 提供选项的控件提供选项的控件2、单选框控件单选框控件(OptionButton)v功能功能:与复选框相似,单选框也是与复选框相似,单选框也是成组地排列在窗体成组地排列在窗体上供用户从中进行选择上供用户从中进行选择。由圆形框和标题文字组成。由圆形框和标题文字组成。v选择状态选择状态:圆形框中空白,表示未选中;圆形框中有:圆形框中空白,表示未选中;圆形框中有黑点表示选中。黑点表示选中。v单选框与复选框的本质区别:单选框与复选框的本质区别:在同一组单选框中,只能有一个并且必须有一个单选在同一组单选框中,只能有一个并且必须有一个单选框被选中。框被选中。选中一个单选框,则原来被选中的单选框会自动变为选中一个单选框,则原来被选中的单选框会自动变为未选定状态。未选定状态。418.3 提供选项的控件提供选项的控件v单选框的分组单选框的分组:直接放置在窗体上的所有控件被认为是属于同一组直接放置在窗体上的所有控件被认为是属于同一组无论它们之间的相互位置如何。无论它们之间的相互位置如何。要在窗体上建立多组单选框,就要使用控件容器:要在窗体上建立多组单选框,就要使用控件容器:图片框或框架,其中框架用的最多。将作为一组的图片框或框架,其中框架用的最多。将作为一组的单选框放在控件容器中,就形成一组单选框。单选框放在控件容器中,就形成一组单选框。428.3 提供选项的控件提供选项的控件vName属性属性:对象名。对象名。vLeft、Top、Width、Height、Visible、Enabled属性属性:这些属性与其他控件的意义相同。这些属性与其他控件的意义相同。vCaption属性属性、Style属性属性、Alignment属性属性:这三个:这三个属性与复选框的用法相同。属性与复选框的用法相同。vValue属性属性:与复选框不同,单选框的:与复选框不同,单选框的Value属性为逻属性为逻辑型,表示单选框的选择状态。该属性值为辑型,表示单选框的选择状态。该属性值为True时时表示选中;为表示选中;为False时,未选中。时,未选中。438.3 提供选项的控件提供选项的控件vMove方法方法:用法与其他控件相同。用法与其他控件相同。vClick事件事件、DblClick事件事件:与复选框不同,单选框:与复选框不同,单选框支持支持Click事件和事件和DblClick事件。一般很少编写这些事件。一般很少编写这些事件过程。事件过程。v作业作业:实现例子:实现例子8.4。448.3 提供选项的控件提供选项的控件3、列表框控件列表框控件(ListBox)v功能功能:列表框是用来提供选项的控件。其特点是列表框是用来提供选项的控件。其特点是在在有限的空间中提供许多的选项有限的空间中提供许多的选项。v当列表框不能同时显示所有的选项时,会提供滚动当列表框不能同时显示所有的选项时,会提供滚动条对控件中的选项进行滚动浏览、选择。条对控件中的选项进行滚动浏览、选择。v列表框中的选择项称为列表框中的选择项称为“条目条目(Item)”458.3 提供选项的控件提供选项的控件v列表框控件的特点列表框控件的特点:在一个矩形区域内,以有限的面积提供大量的可选项(通过滚动操作)。可以显示单列,也可以显示多列多列。可以单选,也可以多选多选。支持自动排序自动排序。运行过程中,方便地添加添加、删除删除条目。可存储与条目相关的数据存储与条目相关的数据。468.3 提供选项的控件提供选项的控件v列表框与文本框的区别列表框与文本框的区别:它们的外观很相似,但文它们的外观很相似,但文本框中的文本是作为本框中的文本是作为一个整体进行输入输出的一个整体进行输入输出的,而,而列表框中的列表框中的每一个条目对程序来说都是可识别的每一个条目对程序来说都是可识别的。在程序运行时,用户不能在窗口中直接修改列表框在程序运行时,用户不能在窗口中直接修改列表框中的内容,而文本框则可以。中的内容,而文本框则可以。478.3 提供选项的控件提供选项的控件vName属性属性:对象名。对象名。vLeft、Top、Width、Height、Visible、Enabled属性属性:这些属性与其他控件的意义相同。这些属性与其他控件的意义相同。vColumns属性属性:决定列表框中显示条目的列数。:决定列表框中显示条目的列数。为为“0”时,显示一列,条目多时自动添加垂直滚动时,显示一列,条目多时自动添加垂直滚动条条.为为“1”时,仍显示一列,条目多时自动添加水平滚时,仍显示一列,条目多时自动添加水平滚动条,此时变为多列。动条,此时变为多列。值大于值大于1时,条目的显示列数视列表框的宽度而定,时,条目的显示列数视列表框的宽度而定,滚动条为水平。滚动条为水平。488.3 提供选项的控件提供选项的控件vListCount属性属性:该属性的值是列表框中的该属性的值是列表框中的条目数条目数。此。此属性是属性是只读只读,设计阶段不可用设计阶段不可用。vList属性属性:该属性实质上是一个:该属性实质上是一个一维数组一维数组,类型为字类型为字符串符串。数组下标的。数组下标的下界为下界为0,上界为上界为ListCount属性值属性值减减1。每个数组元素顺序对应列表框中的一个条目每个数组元素顺序对应列表框中的一个条目。列表框添加条目的方法列表框添加条目的方法:设计阶段设计阶段:在属性窗口中的:在属性窗口中的List属性处为列表框添属性处为列表框添加初始条目。加初始条目。程序运行时程序运行时:可使用:可使用List属性来改变列表框中的现属性来改变列表框中的现有条目。如语句:有条目。如语句:List1.List(m)=“新值新值”498.3 提供选项的控件提供选项的控件vListIndex属性属性:该属性的值是该属性的值是当前被选中条目的序号当前被选中条目的序号(也就是该条目的数组下标值也就是该条目的数组下标值)。若列表框支持多选,。若列表框支持多选,则则ListIndex属性的值是属性的值是最后一个被选中条目的序号最后一个被选中条目的序号。vItemData属性属性:列表框控件还:列表框控件还为每个条目预留了一个为每个条目预留了一个长整型数值空间长整型数值空间,用来保存与条目相关的信息。,用来保存与条目相关的信息。ItemData属性就是这样一个属性就是这样一个一维数组一维数组,类型为长整型,类型为长整型不像不像List属性数组,属性数组,该数组不被显示出来该数组不被显示出来。List属性数组中的元素与属性数组中的元素与ItemData属性数组中的元素属性数组中的元素按顺序一一对应按顺序一一对应。508.3 提供选项的控件提供选项的控件List1.list(0)List1.list(1)List1.list(2)List1.list(3)List1.list(4)List1.list(5)List1.list(6)List1.list(7)List1.list(8)List1.list(9)List1.ItemData(0)List1.ItemData(1)List1.ItemData(2)List1.ItemData(3)List1.ItemData(4)List1.ItemData(7)List1.ItemData(6)List1.ItemData(5)List1.ItemData(9)List1.ItemData(8)显示的列表框List属性数组ItemData属性数组518.3 提供选项的控件提供选项的控件vMultiSelect属性属性:该属性决定列表框是否支持多选。该属性决定列表框是否支持多选。取值范围:取值范围:0-2,整型。取不同值时的含义见表,整型。取不同值时的含义见表8.8。vStyle属性属性:该属性值为:该属性值为“0”时,标准样式;为时,标准样式;为“1”时,复选框样式。运行时为只读。时,复选框样式。运行时为只读。注意注意:无论:无论MultiSelect属性为何值,如果属性为何值,如果Style属性为属性为“1”,列表框都支持多选。,列表框都支持多选。vSelCount属性属性:该属性表明列表框中当前被选中的条:该属性表明列表框中当前被选中的条目数。如没有条目被选中,该属性值为目数。如没有条目被选中,该属性值为“0”。运行。运行时只读,设计时不可用。时只读,设计时不可用。528.3 提供选项的控件提供选项的控件vSelected属性属性:该属性是一个:该属性是一个逻辑型数组逻辑型数组。数组元素。数组元素个数与列表框中的条目数相同,即个数与列表框中的条目数相同,即每个数组元素对应每个数组元素对应一个条目一个条目。数组元素值为。数组元素值为“True”时,表示对应的条时,表示对应的条目被选中,值为目被选中,值为“False”表示未被选中。该属性设表示未被选中。该属性设计时不可用。计时不可用。vTopIndex属性属性:是列表框中可见的第一个条目的序号。:是列表框中可见的第一个条目的序号。设计时不可用。设计时不可用。vText属性属性:该属性保存了列表框该属性保存了列表框当前所选条目的文字当前所选条目的文字。如没有条目被选中,该属性值为空字符串。如没有条目被选中,该属性值为空字符串。538.3 提供选项的控件提供选项的控件vSorted属性属性:该属性决定列表框中的该属性决定列表框中的条目是否排序条目是否排序。属性值为属性值为“True”时,条目时,条目按按ASCIIASCII码和汉字国标码码和汉字国标码的顺序递增排序的顺序递增排序;为;为“False”时不排序。运行时只时不排序。运行时只读。读。vNewIndex属性属性:该属性的值是最新添加到列表框中条:该属性的值是最新添加到列表框中条目的序号。只读。目的序号。只读。548.3 提供选项的控件提供选项的控件vAddItem方法方法:在程序运行时,可以使用在程序运行时,可以使用AddItem方法方法往列表框中添往列表框中添加新条目加新条目。语法格式为:。语法格式为:列表框对象名列表框对象名.AddItem 字符串表达式字符串表达式,序号,序号说明:说明:AddItem方法将方法将“字符串字符串”插入到列表框中插入到列表框中“序号序号”指定的位置上。序号的取值范围:大于或等于指定的位置上。序号的取值范围:大于或等于0,小于或等列表框中的当前条目数。,小于或等列表框中的当前条目数。如果如果列表框已经排序列表框已经排序,使用该方法插入条目时,不要,使用该方法插入条目时,不要带带“序号序号”,以免引起混乱。,以免引起混乱。558.3 提供选项的控件提供选项的控件vRemoveItem方法方法:用于从列表框中用于从列表框中删除指定序号位置上的条目删除指定序号位置上的条目。格式:。格式:列表框对象名列表框对象名.RemoveItem 序号序号说明:说明:“序号序号”指定的条目被删除后,指定的条目被删除后,与该条目相与该条目相关联的所有数据都会被删除关联的所有数据都会被删除(ItemData属性值、属性值、Selected 属性值等属性值等)。vClear方法方法:清除列表框中的所有条目。格式:清除列表框中的所有条目。格式:列表框对象名列表框对象名.ClearvMove方法方法:用法与其他控件相同。:用法与其他控件相同。568.3 提供选项的控件提供选项的控件vClick、DblClick事件事件:意义与用法与其他控件相同:意义与用法与其他控件相同.注意注意:只有点击列表框中的条目时,才会引发这两:只有点击列表框中的条目时,才会引发这两个事件。点击列表框的空白区域无效。个事件。点击列表框的空白区域无效。vScroll事件事件:列表框的滚动条滚动时,引发此事件。:列表框的滚动条滚动时,引发此事件。用法同滚动条控件的该方法。用法同滚动条控件的该方法。vItemCheck事件事件:列表框条目的复选框被选定或取消:列表框条目的复选框被选定或取消时引发该事件。事件过程的语法:时引发该事件。事件过程的语法:Private Sub 列表框对象名列表框对象名.ItemCheck(Item as Integer)Item参数反映被操作条目的序号参数反映被操作条目的序号。57作业:作业:v实现实现【例例8.5】588.3 提供选项的控件提供选项的控件4、组合框控件组合框控件(ComboBox)v组合框可以看作是由组合框可以看作是由一个文本框和一个列表框构成一个文本框和一个列表框构成的组合体的组合体。所以组合框具有文本框和列表框大多数。所以组合框具有文本框和列表框大多数常用属性、方法事件。常用属性、方法事件。vName属性属性:对象名。:对象名。vLeft、Top、Width、Height、Visible、Enabled属性属性:这些属性与其他控件的意义相同。这些属性与其他控件的意义相同。vStyle属性属性:决定组合框的样式。取值:决定组合框的样式。取值0-2,整型。取,整型。取不同值时的意义见表不同值时的意义见表8.11。598.3 提供选项的控件提供选项的控件v组合框的其他常用属性:组合框的其他常用属性:组合框不支持多选组合框不支持多选,因此无列表框的相关属性。,因此无列表框的相关属性。除此之外。组合框除此之外。组合框支持列表框和文本框的大多数常支持列表框和文本框的大多数常用属性用属性。vAddItem、Clear、RemoveItem、Move方法方法:组合框控件这些方法的用法与列表框相同。组合框控件这些方法的用法与列表框相同。注意注意:组合框并不会自动将用户在文本框部分中输:组合框并不会自动将用户在文本框部分中输入的内容作为列表框部分的条目。如果要达到这个入的内容作为列表框部分的条目。如果要达到这个目的,可在事件过程中添加如下语句:目的,可在事件过程中添加如下语句:组合框名组合框名.AddItem 组合框名组合框名.Text608.3 提供选项的控件提供选项的控件vChange事件事件:当文本框中的内容发生变化时,触发:当文本框中的内容发生变化时,触发该事件。该事件。vClick、DblClick、Scroll事件事件:当用户用鼠标单击、双击组合框时,触发当用户用鼠标单击、双击组合框时,触发Click事件事件和和DblClick事件。事件。当组合框的列表框部分的滚动条被滚动时,引发当组合框的列表框部分的滚动条被滚动时,引发Scroll事件事件618.4 鼠标与键盘事件鼠标与键盘事件本节知识点本节知识点:MouseDown事件事件MouseUp事件事件MouseMove事件事件KeyDown事件事件KeyUp事件事件KeyPress事件事件628.4 鼠标与键盘事件鼠标与键盘事件v问题问题:控件的控件的Click、DblClick事件都没有参数,当事件都没有参数,当程序处理这两个事件时,存在如下问题:程序处理这两个事件时,存在如下问题:不能确定用户是在对象的什么位置上单击的鼠标。不能确定用户是在对象的什么位置上单击的鼠标。不能确定用户单击的是鼠标上的哪一个键。不能确定用户单击的是鼠标上的哪一个键。不能确定在单击鼠标时是否按下了键盘上的某个控不能确定在单击鼠标时是否按下了键盘上的某个控制键。制键。v如果要在程序中得知上述各种状态,就要处理下面如果要在程序中得知上述各种状态,就要处理下面的三个鼠标事件。的三个鼠标事件。638.4 鼠标与键盘事件鼠标与键盘事件1、MouseDown事件事件v具有该事件的对象有窗体、按纽、文本框、复选框、具有该事件的对象有窗体、按纽、文本框、复选框、单选框、框架、图像、标签、列表框和图片框。单选框、框架、图像、标签、列表框和图片框。v当用户在对象上当用户在对象上按下鼠标键时按下鼠标键时引发引发MouseDown事件。事件。事件过程的语法格式事件过程的语法格式:Private Sub Object_MouseDown(button as Integer,shift as Integer,x as Single,y as Single).End Sub648.4 鼠标与键盘事件鼠标与键盘事件2、MouseUp事件事件v具有该事件的对象同上。具有该事件的对象同上。v当用户在对象上当用户在对象上释放鼠标键时释放鼠标键时引发引发MouseUp事件。事件。事件过程的语法格式:事件过程的语法格式:Private Sub Object_MouseMove(button as Integer,shift as Integer,x as Single,y as Single).End Sub658.4 鼠标与键盘事件鼠标与键盘事件3、MouseMove事件事件v具有该事件的对象同上。具有该事件的对象同上。v当用户在对象上当用户在对象上移动鼠标时移动鼠标时引发引发MouseMove事件。事件。事件过程的语法格式:事件过程的语法格式:Private Sub Object_MouseMove(button as Integer,shift as Integer,x as Single,y as Single).End Sub668.4 鼠标与键盘事件鼠标与键盘事件4、鼠标事件过程的参数鼠标事件过程的参数 vbutton参数参数参数的值反映事件发生时参数的值反映事件发生时按下的是哪个鼠标键按下的是哪个鼠标键。1表表示左键;示左键;2表示右键;表示右键;4表示中键。表示中键。对于对于MouseMove事件,事件发生时,可能同时有两事件,事件发生时,可能同时有两个或三个鼠标键被按下,这时个或三个鼠标键被按下,这时button参数是相应键参数是相应键值之和。值之和。在鼠标移动时,可以不按下任何一个鼠标键,这时在鼠标移动时,可以不按下任何一个鼠标键,这时button参数为参数为0。678.4 鼠标与键盘事件鼠标与键盘事件vShift参数参数参数的值反映事件发生时,参数的值反映事件发生时,键盘上哪个控制键被按键盘上哪个控制键被按下下。1表示表示Shift键;键;2表示表示Ctrl键;键;4表示表示Alt键。键。如果同时有两个或三个控制键被按下,则如果同时有两个或三个控制键被按下,则Shift参数参数是相应键值之和。是相应键值之和。如果事件发生时,没有键被按下,如果事件发生时,没有键被按下,Shift参数为参数为0。vX参数、参数、Y参数参数这两个参数指明当事件发生时,鼠标指针热点所处这两个参数指明当事件发生时,鼠标指针热点所处位置的坐标。默认情况下,位置的坐标。默认情况下,该坐标系统的原点在引该坐标系统的原点在引发事件对象的左上角发事件对象的左上角。688.4 鼠标与键盘事件鼠标与键盘事件v几点注意几点注意当鼠标移动时,会不断发送当鼠标移动时,会不断发送MouseMove事件。但不事件。但不是每经过一个点都会发生是每经过一个点都会发生MouseMove事件,而是在事件,而是在移动过程中移动过程中每间隔很短的时间每间隔很短的时间发送一个此事件。因发送一个此事件。因此,在相同的距离上,鼠标移动的速度越快,产生此,在相同的距离上,鼠标移动的速度越快,产生的事件就越少。的事件就越少。在对象上操作一次鼠标,会产生多个与鼠标有关的在对象上操作一次鼠标,会产生多个与鼠标有关的事件。这些事件。这些事件的产生顺序可能不同事件的产生顺序可能不同。所以在使用。所以在使用前一定要仔细测试。前一定要仔细测试。当一个控件不可见时当一个控件不可见时,针对它的鼠标操作会,针对它的鼠标操作会传递到传递到位于它下面的对象上位于它下面的对象上。698.4 鼠标与键盘事件鼠标与键盘事件v鼠标事件举例鼠标事件举例:测量鼠标事件的发生顺序。v窗体绘图窗体绘图708.4 鼠标与键盘事件鼠标与键盘事件v需求需求:要识别组合键、功能键、光标键、小键盘上的按键。要识别组合键、功能键、光标键、小键盘上的按键。区别按下或松开的动作。区别按下或松开的动作。对输入字符进行筛选。对输入字符进行筛选。v对上述需求,要求使用键盘事件。对上述需求,要求使用键盘事件。718.4 鼠标与键盘事件鼠标与键盘事件5、KeyDown事件事件v具有这个事件的对象有:窗体、命令按纽、文本框、具有这个事件的对象有:窗体、命令按纽、文本框、复选框、单选框、列表框、组合框、滚动条与图片框。复选框、单选框、列表框、组合框、滚动条与图片框。事件过程的语法格式:事件过程的语法格式:v该事件是当一个对象该事件是当一个对象具有焦点时具有焦点时,用户按下一个键盘,用户按下一个键盘键时发生的键时发生的。Private Sub object_KeyDown(KeyCode as Integer,Shift as Integer)728.4 鼠标与键盘事件鼠标与键盘事件vKeyCode参数参数:表示按键的代码。每一个按键都有相:表示按键的代码。每一个按键都有相应的键代码,见附录应的键代码,见附录D。键盘上字母和数字键的键代。键盘上字母和数字键的键代码与其码与其ASCII码相同。码相同。注意注意:对于字母键,:对于字母键,KeyCode返回的总是大写形式,返回的总是大写形式,要知道当前的大小写形式,应该检测要知道当前的大小写形式,应该检测Shift参数的值。参数的值。vShift参数参数:指示在按下一个键时,是否同时按下了:指示在按下一个键时,是否同时按下了Shift、Ctrl、Alt键。为键。为1时按下了时按下了Shift键;为键;为2时按下时按下了了Ctrl键;为键;为4时按下了时按下了Alt键。当这三个键中不止一键。当这三个键中不止一个键按下时,个键按下时,Shift参数是按下键相应数值之和。如果参数是按下键相应数值之和。如果三个键均未按下,这个参数值为三个键均未按下,这个参数值为0。738.4 鼠标与键盘事件鼠标与键盘事件6、KeyUp事件事件v具有这个事件的对象同上。事件过程的语法格式:具有这个事件的对象同上。事件过程的语法格式:v该事件是当一个对象该事件是当一个对象具有焦点时具有焦点时,用户,用户松开松开一个按下一个按下的键盘键时发生的的键盘键时发生的。v参数同参数同KeyDown事件。事件。Private Sub object_KeyUp(KeyCode as Integer,Shift as Integer)748.4 鼠标与键盘事件鼠标与键盘事件7、KeyPress事件事件v具有这个事件的对象同上。事件过程的语法格式:具有这个事件的对象同上。事件过程的语法格式:Private Sub object_KeyPress(KeyAscii as Integer)v当按了键盘上的一个当按了键盘上的一个可打印字符键时可打印字符键时,引发此事件。,引发此事件。参数参数KeyAscii传递的是按键字符的传递的是按键字符的ASCII码。码。具有焦点的对象才能接收该事件。具有焦点的对象才能接收该事件。不属于可打印字符范围的键,不会引发该事件。不属于可打印字符范围的键,不会引发该事件。该事件将字母的大小写形式作为不同的键代码解释。该事件将字母的大小写形式作为不同的键代码解释。758.4 鼠标与键盘事件鼠标与键盘事件v注意:注意:改变改变KeyAscii参数的值会改变实际输入到控件中的字符。参数的值会改变实际输入到控件中的字符。将将KeyAscii参数的值改为参数的值改为0,可取消击键,使对象接收不,可取消击键,使对象接收不到字符。到字符。v键盘事件举例键盘事件举例:【例例8.8】768.5 控件数组控件数组本节知识点本节知识点:创建创建控件数组编写编写控件数组事件过程事件过程动态添加动态添加、删除删除控件数组元素元素778.5 控件数组控件数组v正如使用数组可以简化编程,使用控件数组可以替正如使用数组可以简化编程,使用控件数组可以替代同一个窗体上功能类似的代同一个窗体上功能类似的多个同类控件多个同类控件,很大程很大程度上简化编程度上简化编程。控件数组具有以下特性:控件数组具有以下特性:控件数组中的所有元素控件控件数组中的所有元素控件必须是同一类型必须是同一类型;控件数组中所有的元素控件的控件数组中所有的元素控件的Name属性相同属性相同;通过控件的通过控件的Index属性属性区别同一控件数组中的各个元区别同一控件数组中的各个元素控件;素控件;788.5 控件数组控件数组对于同一个事件,同一控件数组中的对于同一个事件,同一控件数组中的所有控件共用所有控件共用同一个事件过程同一个事件过程,与单个控件相比,控件数组的事,与单个控件相比,控件数组的事件过程增加了一个件过程增加了一个Index参数参数,该参数值与引发该事,该参数值与引发该事件的控件数组元素的件的控件数组元素的Index属性值相同属性值相同;除了除了Name属性和属性和Index属性,控件数组中每个元素属性,控件数组中每个元素的其他属性可以单独设置;的其他属性可以单独设置;798.5 控件数组控件数组控件数组元素的下标(即控件的控件数组元素的下标(即控件的Index属性值)属性值)不能不能重复重复,但可以不连续;,但可以不连续;控件数组的元素个数受系统资源的限制,并且最大控件数组的元素个数受系统资源的限制,并且最大的的Index属性值不能超过属性值不能超过32767;同一窗体上,可以有多个控件数组;同一窗体上,可以有多个控件数组;所有的内部控件都可以创建控件数组。所有的内部控件都可以创建控件数组。808.5 控件数组控件数组1、创建控件数组创建控件数组v使用复制和粘贴控件的方法。使用复制和粘贴控件的方法。v使用更改已有控件使用更改已有控件Name属性和属性和Index属性的方法。属性的方法。v以图以图8.17所示的简易计算器为例,说明控件数组的所示的简易计算器为例,说明控件数组的创建和使用创建和使用。818.5 控件数组控件数组q设置窗体设置窗体创建新工程,将窗体的Name属性改为frmCalculator。将窗体的Caption属性改为“计算器”。将窗体的BorderStyle属性置为“1”。(固定边框)将窗体的MaxButton属性置为“False”。828.5 控件数组控件数组q设置文本框设置文本框在窗体上放置文本框控件,其属性修改如下:Name属性:改为txtDisplay。Alignment属性:改为1。BackColor属性:设为&H00FFFF00。Locked属性:设为True。838.5 控件数组控件数组q命令按纽分类命令按纽分类数字按纽和小数点按纽可归为一类数字按纽和小数点按纽可归为一类,其作用是输入计算数据。运算符可归为一类运算符可归为一类,作用是输入运算符。剩余三个按纽,由于功能不同,分别设为独立按纽。根据以上分类,需要创建2个控件数组。分别命名为:cmdNumber和cmdCalc。848.5 控件数组控件数组q创建控件数组创建控件数组在窗体上放置控件数组中的第一个按纽,将该按纽的Name属性改为cmdNumber,Caption属性改为“0”。选中按纽“0”,复制然后粘贴,这时会出现一个消息框,询问是否要创建控件数组,单击“是”。于是窗体上会添加一个与已有按纽外观相同的新按纽。将新按纽的Caption属性改为“1”。重复上述过程,直到添加足够数量的按纽。使用相同的步骤,创建控件数组cmdCalc。858.5 控件数组控件数组2、编写事件过程编写事件过程v使用控件数组最重要的优点是:控件数组中各个控使用控件数组最重要的优点是:控件数组中各个控件件对同一事件使用同一个事件过程对同一事件使用同一个事件过程。v通过过程参数来区别不同的控件通过过程参数来区别不同的控件,控件数组,控件数组Click事事件过程的语法格式:件过程的语法格式:Private Sub cmdNumber_Click(Index as Integer)v程序可以根据程序可以根据Index参数传递的值来判断这个事件是参数传递的值来判断这个事件是由控件数组中的哪个控件触发的。引发事件的控件由控件数组中的哪个控件触发的。引发事件的控件数组元素的下标值与数组元素的下标值与Index参数值相同参数值相同。868.5 控件数组控件数组q计算器功能说明:计算器功能说明:通过数字按纽输入第一个运算数。按运算符按纽后,文本框中的第一个数被清除,开始输入第二个运算数。按等于按纽,得出计算结果。对于输错的数字,可以通过退格键进行修改。可以使用符号按纽为运算数添加符号。878.5 控件数组控件数组q事件过程说明事件过程说明:cmdNumber_Click(Index as Integer):控件数组事件过程,负责处理点击数字键和小数点键。每点击一次这些键,就相当于输入一个数字或小数点。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!