主讲:冯元VisualBasic程序设计2第八章内部控件8.1图形与图像类控件8.2滚动条、框架与定时器8.3提供选项的控件8.4鼠标与键盘事件8.5控件数组8.6菜单38.1图形与图像类控件本节知识点:•直线控件(Line)•形状控件(Shape)•图像控件(Image)•图片框控件(PictureBox)48.1图形与图像类控件已学过的内部控件:窗体(Form)、文本框(TextBox)、标签(Label)、命令按钮(CommandButton)。本章将要学习的新内部控件:直线(Line)、形状(Shape)、图像(Image)、图片框(PictureBox)。滚动条(HScrollBar、VScrollBar)、框架(Frame)、定时器(Timer)。复选框(CheckBox)、单选框(OptionButton)、列表框(ListBox)、组合框(ComboBox)。58.1图形与图像类控件控件的学习方法:控件的功能。属性、方法、事件。熟悉内部控件的常用属性、方法、事件。知道如何查找内部控件的文档。注意内部控件事件如何发生及发生的顺序。Name、Left、Top、Width、Height、Visible、Enabled、Move、Click、DbClick。68.1图形与图像类控件1、直线控件(Line)功能:在窗体上显示一条直线,用来将窗体上的控件进行视觉上的分组。由于该控件只起装饰作用,所以没有方法和事件,也没有Enable属性。Name属性:对象名。X1、Y1、X2、Y2:这四个属性决定了直线控件的两个端点在窗体上的坐标值。可使用它们来调整直线控件的长短与位置。78.1图形与图像类控件Visible属性:决定直线控件是否可见。该属性取值为“True”时可见,为“False”时不可见。BorderStyle属性:该属性决定了直线的线型。取值范围0-6,整型。不同属性值的意义见表8.1。BorderWidth属性:线条宽度,单位像素。取值范围:不小于1的整数。注意:除了“实线”和“透明”线型外,对于其他线型该属性值一定要设为“1”。也就是说不可能有粗点划线、粗虚线等。88.1图形与图像类控件2、形状控件(Shape)功能:显示多种不同的形状,用来装饰窗体。形状控件有Move方法、无事件。Name属性:对象名。Left、Top、Width、Height、Visible属性:这些属性决定形状控件的大小、位置与可见性,用法与其他控件相同,形状控件无Enabled属性。98.1图形与图像类控件Shape属性:决定控件以什么形状显示。取值范围:0-5,整型。取不同值时对应的形状见表8.2。注意控件实际大小与显示形状大小的不同。BorderStyle属性:决定形状控件的边框样式,取值与直线控件的BorderStyle属性相同。BorderWidth属性:决定形状控件的边框宽度,单位为像素。与直线控件相似。FillStyle属性:决定形状控件内部的填充样式。取值范围:0-7,整数。取不同值时对应的样式见表8.3。108.1图形与图像类控件例8.1窗体上有一个形状控件和一个命令按钮。编写按钮的Click事件过程,要求:连续单击按钮,形状控件的形状与填充样式会交替循环改变.PrivateSubCommand1_Click()StaticintShapeAsIntegerStaticintStyleAsIntegerStaticbAsBooleanIfbThenintShape=intShape+1IfintShape5ThenintShape=0EndIfb=NotbShape1.Shape=intShape'改变形状ElseintStyle=intStyle+1IfintStyle7ThenintStyle=0EndIfb=NotbShape1.FillStyle=intStyle'改变填充样式EndIfEndSub118.1图形与图像类控件3、图像控件(Image)功能:用来在窗体上显示保存在图形文件中的图像。支持的图形文件格式有:位图文件(.bmp)Windows元文件(.wmf)增强型元文件(.emf)图标文件(.ico)以.jpg、.Gif为扩展名的图形文件。128.1图形与图像类控件Name属性:对象名。Left、Top、Width、Height、Visible属性:用法与其他控件相同。Enabled属性:属性值为“False”时,图形控件的外观与属性值为“True”时相同,只是不能响应Click和DblClick事件。BorderStyle属性:此属性值为“0”时,无边框;为“1”时有边框。138.1图形与图像类控件Picture属性:决定图像控件显示图像的来源。如果不给此属性赋值,则图像控件不会显示任何图形。为Picture属性赋值的方法:在设计时:在属性窗口中点击Picture属性栏中的按纽,打开“加载图片”对话框,选取所要的图片,按确定按纽。在程序中,可使用内部函数LoadPicture()把一个图像文件赋给该属性。如:img1.Picture=LoadPicture(“c:\windows\setup.bmp”)148.1图形与图像类控件Stretch属性:如果此属性值为“True”,则当所显示图像的原始大小与控件大小不同时,会自动缩放图像填充整个控件.如果此属性值为“False”,图像会以原始大小显示,如果控件比图像小,会使图像显示不完整。Move方法:用法与其他控件相同。Click事件、DblClick事件:用法和其他控件一样。158.1图形与图像类控件4、图片框控件(PictureBox)功能:图片框除具有图像控件的所有功能外,还有如下功能:可作控件的容器。支持绘图方法,可绘图。通过Align属性定位于窗体的一侧。168.1图形与图像类控件Name属性:对象名。Left、Top、Width、Height、Visible、Enabled属性:这些属性与其他控件的意义相同。BorderStyle属性:值为“0”时无边框,为“1”有。Picture属性:与图像控件的该属性相同。AutoSize属性:属性值为“True”时,控件会自动适应图片的大小;为“False”时,控件大小固定不变。178.1图形与图像类控件Align属性:决定图片框在窗体上的位置。取值范围:0-4,整型。取不同值时的含义见表8.4。由于图片框可自动位于窗体的某条边上,所以可用来制作工具栏和状态栏。Move方法:用法与其他控件相同。除此之外,图片框还支持多个绘图方法。Click事件、DblClick事件:用法与其他控件一样。Change事件:当图片框的Picture属性值变化时,引发这个事件。188.1图形与图像类控件5、使用图片框控件作控件容器图片框可以作为控件容器,像窗体一样容纳其他控件。具有这种功能的控件还有框架(Frame)。图片框和框架可以进行多层嵌套。也就是说,一个容器内即可以包含其他控件,也可以包含图片框和框架等容器控件。如果一个控件被放置在容器控件中,无论嵌套多深在程序中对它进行操作时,与直接放置在窗体上时是一样的。198.1图形与图像类控件控件容器的作用和特点:移动容器控件,被包容的控件会跟随移动。隐藏容器控件,被包容的控件也不可见。被包容的控件的Left和Top属性值是其所在容器控件内部的坐标。208.1图形与图像类控件例子:使用图片框来创建一个工具栏。在窗体上放置一个图片框,然后将Align属性置为1,这时图片框会自动地附着在窗体标题栏下面。单击工具箱中的命令按纽图标,然后在图片框中拖动添加一个按纽控件。这样添加的按纽是不能通过拖动方法移出图片框的。在图片框中添加多个按纽控件,调整控件的大小和位置,设置相关属性,然后编写事件过程。218.1图形与图像类控件在按纽控件上添加图标:将按纽对象的Style属性置“1”,将Caption属性值清空,然后使用Picture属性添加图标文件。为控件设置提示信息:即在运行时,当鼠标指针停留在控件上片刻后,会显示一个简要介绍控件功能的提示窗口。方法:将控件的TooltipText属性值设置为要显示的信息。22作业:制作教材182页图8.4中的工具条,并在窗体上添加图像控件,点击不同按钮时,在图像控件中显示不同的图像。238.2滚动条、框架与定时器本节知识点:•滚动条控件(HScrollBar、VScrollBar)•框架控件(Frame)•定时器控件(Timer)248.2滚动条、框架与定时器1、滚动条控件(HScrollBar、VScrollBar)滚动条控件分为水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)。两者除了称呼和放置方向不同外,其他都一样。因此,下面介绍的所有属性、方法和事件对两者都适用。滚动条由两端带有箭头的滚动按纽、中间的滚动块和空白区域组成。用途:滚动条一般用来上下、左右地滚动文字和图形,也可以用来进行其他内容的输入输出。258.2滚动条、框架与定时器Name属性:对象名。Left、Top、Width、Height、Visible、Enabled属性:这些属性与其他控件的意义相同。Value属性:反映滚动条的当前值。滚动块的位置大体上可以反映这个属性的值,单击滚动按纽、单击空白区域、拖动滚动块,都会改变这个属性的值。Min属性:决定了当滚动块处于顶端或最左端位置时,滚动条Value属性的值。即滚动范围的下限。268.2滚动条、框架与定时器Max属性:决定了当滚动块处于底端或最右端位置时,滚动条Value属性的值。即滚动范围的上限。Min属性和Max属性取值范围:-32768~32768。SmallChange属性:该属性值是当用户单击滚动箭头按纽时,Value属性值的变化量。LargeChange属性:该属性值是当用户单击滚动箭头之间的空白区域时,Value属性值的变化量。上述两个属性的取值范围:1-32768,整数。通常,LargeChange属性的值要大于SmallChange属性的值。278.2滚动条、框架与定时器Change事件:滚动条不支持Click和DblClick事件。当滚动条的Value属性值发生变化时,引发Change事件。能够引起Value属性值改变的原因有:单击滚动条箭头按纽。单击空白区域。拖动滚动块。在程序中重设了Value属性的值。Scroll事件:在滚动条的滚动块被拖动的过程中,引发此事件。在使用鼠标拖动滚动条滚动块的过程中,会连续地引发多个Scroll事件。288.2滚动条、框架与定时器例子:设计如下界面,当滚动条Value属性值变化时显示在文本框中。298.2滚动条、框架与定时器PrivateSubHScroll1_Change()Text1.Text=HScroll1.ValueEndSubPrivateSubHScroll1_Scroll()Text1.Text=HScroll1.ValueEndSub属性设置:Min=1;Max=1000SmallChange=10;LargeChange=10030作业:在窗体上放置2个文本框和一个垂直滚动条,当单击滚动箭头或拖动滚动块时,2个文本框可以同时上下移动。318.2滚动条、框架与定时器2、框架控件(Frame)框架是一个左上角有标题文字的方框。功能:对窗体上的控件进行视觉上的分组,使窗体上的内容更有条理。希望被框架围起来的控件可以叠放在框架控件上面,产生一种被框架围起来的视觉效果。与图片框一样,框架也可以作为控件容器。328.2滚动条、框架与定时器Name属性:对象名。Left、Top、Width、Height、Visible、Enabled属性:这些属性与其他控件的意义相同。注意:如容器控件的Enabled属性值为“False”,则置于其内部的控