Visual Basic程序设计 潘地林 28022-003_第1页
Visual Basic程序设计 潘地林 28022-003_第2页
Visual Basic程序设计 潘地林 28022-003_第3页
Visual Basic程序设计 潘地林 28022-003_第4页
Visual Basic程序设计 潘地林 28022-003_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VisualBasic程序设计,主讲教师:,2,目录,3,目录,4,第三章用户界面设计,本章导读,掌握基本控件的常用属性、事件和方法。掌握图形控件的常用属性、事件与方法。掌握通用对话框控件的添加及应用。掌握控件数组的创建及应用。了解ActiveX控件的添加,熟悉常用ActiveX控件的属性、事件和方法。理解鼠标和键盘事件。掌握窗体的添加和设置启动窗体的方法。了解MDI窗体的创建。,5,第三章用户界面设计,3.1单选按钮、复选框和框架,3.1.1单选按钮,单选按钮(OptionButton)控件也称作选项按钮,一组单选按钮控件可以提供一组彼此相互排斥的选项,任何时候用户只能从中选择一个选项,被选中的Value属性值为True,未被选中的Value值为False。默认名称OptionX。注意:同一“容器”中的单选按钮提供的选项是相互排斥的,即只要选中某个选项,其余选项就自动取消选中状态。,单选按钮,6,第三章用户界面设计,3.1单选按钮、复选框和框架,3.1.1单选按钮,1属性最重要的属性是Value属性,其值为逻辑的真值和假值,当其值为True时表示选中,为False(默认值)则表示未选择该按钮。2事件单选按钮最基本的事件是Click事件,单击某按钮其Value值变为True。3方法SetFocus方法是单选按钮最常用的方法,可以在代码中通过该方法将Value属性设置为True。例3-1设计用户界面。程序运行后,单击某个单选按钮,可以将其对应的内容显示在标签中。,运行例3-1程序,7,第三章用户界面设计,3.1单选按钮、复选框和框架,3.1.2复选框,1属性复选框的Value属性有3种值:未被选中时值为0,选中时值为1;禁止用户访问时,Value的值为2,复选框显示为灰色。2事件复选框最重要的事件是Click事件,单击某复选框,可自动改变其状态。3方法复选框也可使用SetFocus方法,但该方法只能使其获得焦点,并不能改变其Value值。,复选框,8,第三章用户界面设计,3.1单选按钮、复选框和框架,3.1.3框架,框架(Frame)是一种容器控件,可以把其他的控件组织在一起,形成一个控件组。在框架内部的控件可以随框架一起移动,并且受到框架某些属性(如Enabled、Visible等)的控制。使用框架控件分组时,应先在窗体上绘制框架,然后激活框架,再在框架中绘制其他控件,这样才能将其他控件添加到框架中。如果希望将已存在的若干控件放在某个框架中,可以先选择控件,将它们剪切,然后粘贴到框架中。除Caption属性外,框架很少使用其他的属性、方法、事件。,9,第三章用户界面设计,3.1单选按钮、复选框和框架,3.1.3框架,例3-2设计一用户界面,用2个框架控件将6个单选按钮分为2组,一组用来改变文本框中文字的字体,一组用来改变文字的颜色;2个复选框,一个用来控制文字的加粗,一个用来控制文字的倾斜。,运行例3-2程序,10,第三章用户界面设计,3.2列表框、组合框,列表框和组合框默认名称分别为ListX和CombolX。列表框(ListBox)控件用于显示项目列表,用户可以从中选择一个或多个项目。如果项目总数超过了可显示的项目数,VisualBasic会自动加上滚动条。列表框有两种风格:标准列表框和复选列表框,一般通过其Style属性进行设置。组合框(ComboBox)控件将文本框和列表框的功能结合在一起,用户可以在列表中选择某项或在编辑区域中直接输入文本内容来选定项目。如果项目过多时,也会自动出现滚动条。,11,第三章用户界面设计,3.2列表框、组合框,组合框有3种风格:下拉式组合框、简单组合框、下拉式列表框。其中两种下拉风格的组合框,只有单击下拉箭头时才会显示全部列表,这样就节省了窗体的空间,从而使得无法容纳列表框的地方可以很容易地容纳组合框。注意:下拉式组合框与下拉式列表框的区别在于后者不能输入列表中没有的选项。,12,第三章用户界面设计,3.2列表框、组合框,1主要属性List、ListCount和ListIndex属性List属性:字符串数组。列表框和组合框的List属性值都可以含有多个值,这些值构成一个数组,数组的每一项都是一个列表项。引用列表框和组合框项目的方法如下:.List(i)其中i为项目的索引号,取值范围是0ListCount-1。在设计模式下,可以在属性窗口的List下拉列表框中输入项目。若要连续输入多个项目,可在每输入一项后,按Ctrl+Enter键换行,继续输入下一个项目。,13,第三章用户界面设计,3.2列表框、组合框,ListCount属性:整型数值。用于返回列表框或组合框中列表项目的个数,即List数组中的元素个数。ListIndex属性:整型数值。用于返回或设置列表框或组合框中当前选择项目的索引,第一个项目的索引为0,最后一个项目的索引为ListCount-1。如果未选择项目,则ListIndex属性值为-1。例如,表达式List1.List(list1.ListIndex)返回列表框List1当前选择项目的字符串。,14,第三章用户界面设计,3.2列表框、组合框,Style属性该属性用来指示控件的显示类型和行为,在运行时是只读的。ListBox控件的Style属性取值及含义,注意:对于ListBox控件,当Style属性值设为1时,MultiSelect属性只能设置为0。,15,第三章用户界面设计,3.2列表框、组合框,ComboBox控件的Style属性取值及含义,16,第三章用户界面设计,3.2列表框、组合框,MultiSelect属性用于指示是否能够在列表框控件中进行复选以及如何进行复选,在运行时是只读的,其取值及含义如下表所示。注意,组合框控件无此属性。,17,第三章用户界面设计,3.2列表框、组合框,Selected属性该属性返回或设置列表框控件中的一个项目的选择状态。该属性是一个逻辑类型的数组。Selected属性在设计时是不可用的。Text属性在程序中可返回控件的被选中项目的项目值。Columns属性该属性是列表框控件特有,组合框控件没有该属性。Columns属性决定列表框控件中的项目是否能分多列显示,其值为0,单列显示;其值为1,多列显示。,18,第三章用户界面设计,3.2列表框、组合框,2方法AddItem方法用于将项目添加到列表框控件或组合框控件。其语法格式如下:.AddItemItem,Index其中,Item参数是一个字符表达式,用来指定添加到对象的项目;Index参数是一个整数,用来指定新项目在该对象中的位置(首项的Index为0)。如果省略Index,当Sorted属性设置为True时,Item将添加到恰当的排序位置,当Sorted属性设置为False时,Item将添加到列表的尾部。,19,第三章用户界面设计,3.2列表框、组合框,RemoveItem方法用于从列表框控件或组合框控件中删除一项。其语法格式如下:.RemoveItemIndexClear方法用于清除列表框控件或组合框控件中的所有项目。其语法格式如下:.Clear,20,第三章用户界面设计,3.2列表框、组合框,3事件Click事件当单击某一列表项时,将触发列表框与组合框的Click事件。该事件发生时系统会自动改变列表框与组合框控件的ListIndex、Selected、Text等属性,无需另行编写代码。DblClick事件当双击某一列表项时,将触发列表框与简单组合框控件的DblClick事件。Change事件当通过键盘输入改变下拉式组合框控件的文本框部分的文本,或通过代码改变Text属性的值时,触发Change事件。,21,第三章用户界面设计,3.2列表框、组合框,注意:尽管单击事件也改变列表框或组合框的Text属性值,但不触发Change事件,只有通过键盘改变其Text属性值时,才触发Change事件。列表框、下拉列表框不接受键盘输入。例3-3编写一个应用程序来判断任意选定的一个数是否是素数。程序运行时,在窗体上的列表框中列出了11000之间的1000个整数,用户单击任意一个数,程序就判断该数是否是素数,并把判断结果显示在标签中。,运行例3-3程序,22,第三章用户界面设计,3.2列表框、组合框,例3-4“同构数”是指这样的整数:它恰好出现在其平方数的右端,例如5和6都是同构数。现要求编写一个程序,在窗体装载时,将10999之间的整数添加到组合框中,并将第1项设为默认选项;由用户选择或输入一个2位或3位整数,程序能判断它是否是同构数。分析:2位同构数n应满足的条件是:n=n2Mod100;3位同构数n应满足的条件是:n=n2Mod1000。,运行例3-4程序,23,第三章用户界面设计,3.2列表框、组合框,例3-5设计如下图所示的界面,窗体装载时在列表框List1中添加列表项;在List1中选择一门或多门课程后,单击“添加”按钮可将其添加到列表框List2中;单击“删除”按钮,可将List2中的当前选定项删除。,运行例3-5程序,24,第三章用户界面设计,3.3计时器,计时器(Timer)控件又称时钟控件、定时器控件,可以有规律地每隔一定的时间就执行一次代码,适合编写不需要与用户进行交互即可直接执行的代码,如计时、动画等。计时器控件在运行时是不可见的。1属性Interval属性表示计时器控件计时的时间间隔,取值范围为065535,单位为毫秒(0.001秒)。例如希望每隔半秒做一件事情,可将时钟控件的该属性设置为500;如果将该属性设置为0,则计时器停止工作。,25,第三章用户界面设计,3.3计时器,Enabled属性计时器的Enabled值为真,且Interval属性值大于0时,计时器开始工作,若Enabled值为假,则计时器无效。2事件计时器控件只能响应Timer事件,当Enabled属性值为True且Interval属性值大于0时,该事件以Interval属性指定的时间间隔发生,需要定时执行的操作即放在该事件过程中完成。3方法系统没有为时钟控件提供有关方法。,26,第三章用户界面设计,3.3计时器,例3-6设计一个电子计时器,单击“开始”按钮,开始计时,按钮标题变为“停止”;单击“停止”按钮,停止计时,并显示记录的时间数。在任何时候单击“重置”按钮,时间读数都将重置为0,且按钮标题变为“开始”。,运行例3-6程序,例3-7设计一个简单的动画程序,运行时单击“移动”按钮,标签自右向左移动,且每秒移动5次,每次向左移动60缇,一旦整个标签移出了窗体左端,则标签再从窗体的右端开始移动;单击“暂停”按钮暂停移动。,运行例3-7程序,27,第三章用户界面设计,3.4滚动条,滚动条控件有两个:水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)。1属性Min、Max属性返回或设置滚动条所能代表的最小、最大值,其取值范围为:-3276832767。Min属性的默认值为0,Max属性的默认值为32767。Value属性返回或设置滚动条的当前位置,其返回值始终介于Min和Max属性值之间,包括这两个值。,28,第三章用户界面设计,3.4滚动条,LargeChange属性返回或设置当用户单击滑块和滚动箭头之间的区域时,滚动条Value属性值的改变量。该属性默认值为1。SmallChange属性返回或设置当用户单击滚动箭头或拖动滑块移动时,滚动条Value属性值的改变量。当单击滚动条两端的箭头按钮时,滚动条的值将按最小改变量进行递增或递减。该属性的默认值为1。,29,第三章用户界面设计,3.4滚动条,2事件主要有Scroll和Change。当在滚动条内拖动滚动框时触发Scroll事件(单击滚动箭头或滚动条时不发生Scroll事件),而改变滚动框位置后会触发Change事件。即Scroll事件用于跟踪滚动条中的动态变化,Change事件则用来得到滚动条的最后的值。3方法滚动条有Move、SetFocus等方法,但很少使用。,30,第三章用户界面设计,3.4滚动条,例3-8设计一个应用程序,通过滚动条来改变用户界面上文本框中文字的大小和颜色。在窗体上添加1个文本框Text1,2个水平滚动条Hscroll1和Hscroll2,2个标签Label1和Label2。将文本框Text1的Text属性值设为“学习VB”;水平滚动条Hscroll1的Max属性设为72,Min属性设为8,该滚动条用于控制文字大小;水平滚动条Hscroll2的Max属性设为15,Min属性设为0,该滚动条用于控制文字颜色;标签Label1的Caption属性设为“改变文字大小”;标签Label2的Caption属性设为“改变文字颜色”。,运行例3-8程序,31,第三章用户界面设计,3.5图片框与图像框,3.5.1图片框,图片框控件可以用来显示图片、作为其他控件的容器、显示用图形方法输出的图形以及用Print方法输出的文本。向图片框中加载图形有以下两种方法。在设计时加载。从控件的“属性”窗口选择Picture属性,单击右边的“”按钮,就会出现打开文件对话框,找到所需的图形文件即可。在运行时显示或替换图形,可使用LoadPicture()函数设置Picture属性,使用格式如下:.Picture=LoadPicture(FileName)注意:若省略FileName参数,则清除图片框中的图像。,32,第三章用户界面设计,3.5图片框与图像框,3.5.1图片框,当图片框的AutoSize属性设置为True时,图片框能自动调整大小与显示的图片匹配。例3-9在窗体上添加1个图片框Picture1和2个命令按钮,运行时单击“显示”按钮后,程序会把一张指定的图片装入图片框,并在图片框中输出一行文字。,运行例3-9程序,33,第三章用户界面设计,3.5图片框与图像框,3.5.2图像框,图像框也可以用来装入图形文件,具体的使用方法与图片框类似。图像框与图片框有以下一些不同之处:图像框比图片框占用的内存少,如果仅仅是在界面上显示图片,一般应尽量用图像框。图片框内可以包括其他控件。另外,图片框上还可以输出文本以及用作图方法绘制的图形等。将图形文件装入图片框时,图形不能随图片框的尺寸调整大小。图像框有一个Stretch属性,当其值为True时,图形能自动变化大小以适应图像框的大小;当其值为False时,图像框会自动改变大小以适应图形的大小,使图形充满图像框。,34,第三章用户界面设计,3.6图形控件与方法,3.6.1图形控件,VB的图形控件主要有两个,它们是画线控件Line和形状控件Shape。这两个控件可以用来在窗体上或图片框中绘制图形,但它们不支持任何事件,只用于表面修饰。画线控件Line可以画一条直线,其最主要的属性是BorderWidth和BorderStyle,分别决定所画线段的宽度和形状。另外,两个坐标点(X1,Y1)和(X2,Y2)确定了两个端点的位置。形状控件Shape可以用来画矩形、正方形、椭圆、圆、圆角矩形和圆角正方形6种几何图形,可以通过Shape属性确定其几何形状。形状控件的FillStyle属性和FillColor属性分别控制其填充图案和颜色。,35,第三章用户界面设计,3.6图形控件与方法,3.6.1图形控件,例3-10利用画线控件和形状控件设计一个指针式秒表。程序启动后,单击窗体上的“开始”按钮,表的指针开始转动,每秒动一下,一分钟转一圈。指针转动时,命令按钮的标题变为“暂停”,如果此时再单击命令按钮,指针停止转动,命令按钮的标题又变为“继续”;再单击按钮,指针又开始转动。,运行例3-10程序,36,第三章用户界面设计,3.6图形控件与方法,3.6.2图形的坐标系统,任何容器的缺省坐标系统,都是由容器的左上角(0,0)坐标开始。沿这些坐标轴定义位置的测量单位,统称为刻度。在VB中,坐标系统的每个轴都有自己的刻度。VB的默认坐标系统方向如右图所示,Y坐标轴的正方向是从上向下的。,37,第三章用户界面设计,3.6图形控件与方法,3.6.2图形的坐标系统,1坐标单位坐标单位即坐标的刻度,缺省的坐标系统采用缇(twips)为单位。设置对象的ScaleMode属性可以改变坐标系统的单位,例如可以采用像素或毫米为单位。2坐标方法使用Scale方法也可以设置用户的坐标系统,其语法格式如下:Scale(x1,y1)-(x2,y2)其中,(x1,y1)设置对象的左上角坐标,(x2,y2)设置对象的右下角坐标。使用Scale方法将把对象在x方向上分为x2x1等分,在y方向上分为y2y1等分。,38,第三章用户界面设计,3.6图形控件与方法,3.6.3常用图形方法,1.Line方法Line方法用于画直线和矩形,其语法格式如下:LineStep(x1,y1)Step(x2,y2),Color,BF2.Circle方法Circle方法用于画圆、椭圆、圆弧和扇形,其语法格式如下:.CircleStep(x,y),Radius,Color,Start,End,Aspect,39,第三章用户界面设计,3.6图形控件与方法,3.6.3常用图形方法,3.Pset方法Pset方法用于在窗体或图片框的指定位置(x,y)按规定的颜色画点,其语法格式如下:.PsetStep(x,y),color其中,(x,y)是必需的一对单精度浮点数,用来指定所画点的坐标位置。例3-11利用Pset方法或Line方法均可以画出任意曲线。下面用Pset方法在图片框中绘制阿基米德螺旋线,用Line方法绘制正弦曲线。,运行例3-11程序,40,第三章用户界面设计,3.7通用对话框,3.7.1添加通用对话框控件,用鼠标右键单击控件工具箱,从弹出的快捷菜单中选择“部件”命令,打开“部件”对话框,如下图左图所示。在“部件”对话框中,选定所需的控件,单击“确定”按钮即可将CommonDialog控件添加到控件工具箱中,如下图右图所示。,41,第三章用户界面设计,3.7通用对话框,3.7.2使用通用对话框控件,由于在程序运行时看不见CommonDialog控件,因此可以将它放置在窗体的任意位置。通用对话框可以提供6种形式的对话框,在显示出通用对话框前,应通过设置Action属性或调用Show方法来选择。Show方法及Action属性的对应关系,如下表所示。,42,第三章用户界面设计,3.7通用对话框,3.7.2使用通用对话框控件,通用对话框的默认名为CommonDialog1、CommonDialog2对话框的类型不是在设计阶段设置,而是在程序运行中进行设置,例如:CommonDialog1.Action=1或CommonDialog1.Action.ShowOpen,43,第三章用户界面设计,3.7通用对话框,3.7.2使用通用对话框控件,1保存文件对话框和打开文件对话框Filter属性在显示保存文件对话框或打开文件对话框之前,首先使用Filter属性来设置文件的类型,该属性的取值是一个字符串,由一组或多组文件类型表达式构成,每组代表一类文件。构成规则是:类型说明|类型通配表达式|类型说明|类型通配表达式例如:CommonDialog1.Filter=文本文件(*.Txt)|*.Txt|VB源程序(*.Bas)|*.Bas,44,第三章用户界面设计,3.7通用对话框,3.7.2使用通用对话框控件,FileName属性用户在保存文件对话框中输入的文件名,以及在打开文件对话框中选择的文件名,都可以通过该属性返回,该属性包含了文件所在的路径。2字体对话框Flags属性在使用CommonDialog控件显示字体对话框之前,必须设置Flags属性值。该属性决定CommonDialog控件是否显示屏幕字体、打印字体或者两者同时显示。,45,第三章用户界面设计,3.7通用对话框,3.7.2使用通用对话框控件,FontName、FontSize、FontBold、FontItalic可以返回在字体对话框中设置的字体名称、字号大小、是否粗体、是否斜体。3颜色对话框Color属性可以返回在颜色对话框中所选择的颜色值。例3-12编写程序,可以使用保存文件对话框将文本框中的文本保存到文本文件,也可以使用打开文件对话框打开一个文本文件并显示在文本框中,还可以利用字体对话框和颜色对话框来改变文本框中文字的字体和颜色。,运行例3-12程序,46,第三章用户界面设计,3.8控件数组,3.8.1控件数组的概念,控件数组的使用方法与数组变量相似,也具备以下特点:相同的名称(Name)以下标索引值(Index)来识别各个控件当有若干个控件执行大致相同的操作时,控件数组共享同样的事件过程。在程序运行过程中,可以利用返回的索引值来识别事件是由哪个控件所引发的。一个控件数组至少应有一个元素,元素数目可在系统资源和内存允许的范围内增加;数组的大小也取决于每个控件所需的内存和系统资源。在控件数组中可以用到的最大索引值为32767。,47,第三章用户界面设计,3.8控件数组,3.8.2创建和使用控件数组,只要将控件的Index属性值设置为非空(比如0),则该控件就被定义成了一个控件数组,该控件数组的名字也就是该控件的名字。可以按以下步骤建立一个控件数组:在窗体上添加某个控件,然后进行该控件名的属性设置;选中该控件,进行“复制”和“粘贴”操作,系统就会弹出一个提示对话框,单击“是”按钮,就建立了一个控件数组。此时系统自动将第一个控件元素的Index属性设置为0,而将复制的第二个控件元素的Index属性设置为1,如此继续下去就可建立所需的控件数组。进行事件过程的编码。,48,第三章用户界面设计,3.8控件数组,3.8.2创建和使用控件数组,例3-13设计一个游戏程序。将一个笑脸图标随机地隐藏在3个按钮中,当用户单击了藏有图标的按钮时,显示猜中的界面,否则显示没有猜中的界面;单击“继续猜”按钮,将清除按钮上的图标,同时将3个按钮变为可用。,运行例3-13程序,49,第三章用户界面设计,3.9ActiveX控件,微软公司以及一些第三方厂商开发了许多扩展的高级控件,这些控件被称为ActiveX控件。ActiveX控件文件的类型名为.ocx,一般情况下ActiveX控件被安装和注册在c:windowssystem或system32目录下。执行“工程”菜单中的“部件”命令,打开“部件”对话框,该对话框中列出当前系统中所有注册过的ActiveX部件、可插入对象和ActiveX设计器。,50,第三章用户界面设计,3.9ActiveX控件,3.9.1ProgressBar控件,ProgressBar控件位于MicrosoftWindowsCommonControls6.0部件中。ProgressBar控件通过Min和Max属性设置应用程序完成整个操作的持续时间,通过Value属性指明应用程序在完成该操作时的进度。ProgressBar控件的Height属性和Width属性决定填充控件的方块的数量和大小。方块数量越多,就越能精确地描述操作进度,可通过减少ProgressBar控件的Height属性或者增加其Width属性来增加显示方块的数量。例3-14设计一个进度条,用来指示程序结束的时间进度。,运行例3-14程序,51,第三章用户界面设计,3.9ActiveX控件,3.9.2Animation控件,Animation控件用来显示无声的AVI视频文件,它位于MicrosoftWindowsCommonControl-26.0部件中。Animation控件有四个重要的方法,即Open、Play、Stop和Close方法。Center和AutoPlay是Animation控件的两个重要属性。如果Center为True,则动画在控件的中央播放。如果AutoPlay为True,则用Open打开文件时自动播放,否则需要用Play方法播放。例3-15设计一个如图3-23所示的播放查找文件的动画程序,单击“查找”按钮开始播放,单击“停止”按钮停止播放。,运行例3-15程序,52,第三章用户界面设计,3.9ActiveX控件,3.9.3SStab控件,SStab控件位于MicrosoftWindowsTabbedDialogControls6.0部件中,该控件可以十分方便地创建出包含选项卡的界面。SStab控件常用的属性如下:Style属性:决定选项卡样式。Tabs属性:决定选项卡总数。Rows属性:决定选项卡总行数。TabsPerRow属性:决定每一行上选项卡的数目。Tab属性:返回或设置SStab控件的当前选项卡。,53,第三章用户界面设计,3.10鼠标与键盘事件,3.10.1鼠标事件,1MouseDown事件用户按下鼠标键就会触发MouseDown事件。其语法格式如下:PrivateSub_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)EndSub,54,第三章用户界面设计,3.10鼠标与键盘事件,3.10.1鼠标事件,2MouseUp事件用户释放鼠标键就会触发MouseUp事件。其语法格式如下:PrivateSub_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)EndSub,55,第三章用户界面设计,3.10鼠标与键盘事件,3.10.1鼠标事件,3MouseMove事件用户移动鼠标就会触发MouseMove事件。其语法格式如下:PrivateSub_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)EndSub,56,第三章用户界面设计,3.10鼠标与键盘事件,3.10.1鼠标事件,各参数的含义如下:参数Button:用来标识事件发生时按下了哪一个鼠标键,它返回一个整数。按下左键Button=1,按下右键Button=2,按下中键Button=4。参数Shift:用来判断是否按下了键盘上的Shift、Ctrl和Alt键,它也返回一个整数。如果按下Shift键,参数Shift=1;按下Ctrl键,参数Shift=2;按下Alt键,参数Shift=4。此外,参数Shift的值还可以反映这些键的组合,例如,同时按下Shift键和Alt键时,参数Shift=5。参数X,Y:返回鼠标指针当前位置的坐标。,57,第三章用户界面设计,3.10鼠标与键盘事件,3.10.1鼠标事件,注意:当进行某些鼠标操作时,往往触发不止一个鼠标事件,因此,要避免在同一个程序中,重复为不同的鼠标事件设计多个程序,以免发生混乱。例3-16编写程序在窗体上画线。要求按住Ctrl键,在鼠标左键按下时的坐标点与鼠标松开时的坐标点之间画一条线。,运行例3-16程序,58,第三章用户界面设计,3.10鼠标与键盘事件,3.10.2键盘事件,1KeyPress事件在按下与ASCII字符对应的键时将触发KeyPress事件。对于控制键,则只识别Eenter、Tab和BackSpace键。例如,下面的过程可以控制在文本框中只能输入数字字符。其中,KeyAscii参数返回所按键对应的ASCII码的整型数值。PrivateSubText1_KeyPress(KeyAsciiAsInteger)数字字符0的KeyAscii值是48IfKeyAscii57ThenKeyAscii=0EndIfEndSub,59,第三章用户界面设计,3.10鼠标与键盘事件,3.10.2键盘事件,2KeyDown和KeyUp事件KeyDown和KeyUp事件报告键盘本身准确的物理状态:按下键(KeyDown)及松开键KeyUp)。KeyPress事件并不直接地报告键盘状态,它只提供被按键所代表的字符而不识别键的按下或松开状态。例如:运行如下程序,当按下C键时,程序就会在窗体的(400,500)处画一个半径为300的圆。PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=67Then如果按下C键Circle(400,500),300EndIfEndSub,60,第三章用户界面设计,3.10鼠标与键盘事件,3.10.3鼠标拖放改变控件位置,VB允许在程序运行中通过拖动控件来改变控件的位置。1DragMode属性该属性用来设置控件是手动或自动拖动模式。它的值为0(手动方式)和1(自动方式)。2DragIcon属性在拖动对象的过程中,对象本身不移动,移动的是控件的灰色轮廓,等拖动结束此轮廓恢复成原来的控件。DragIcon属性就是设置其他的图像来代替此轮廓。,61,第三章用户界面设计,3.10鼠标与键盘事件,3.10.3鼠标拖放改变控件位置,3Drag方法其语法格式为:.DragAction其中的参数Action,其值为0时,表示取消控件拖放,其值为1时,表示允许控件拖放;其值为2时,表示结束控件的拖动并触发DragDrop事件。4DragDrop事件当拖动对象结束,松开鼠标按钮时,就会触发DragDrop事件。其事件过程如下:PrivateSub_DragDrop(SourceAsControl,XAsSingle,YAsSingle)EndSub,62,第三章用户界面设计,3.10鼠标与键盘事件,3.10.3鼠标拖放改变控件位置,该事件过程提供了3个参数:Source、X和Y。其中,Source引用被拖动的对象,X和Y记录松开鼠标时的光标位置。例3-17编写一个程序,允许图像框通过拖动改变位置。,运行例3-17程序,63,第三章用户界面设计,3.10鼠标与键盘事件,3.10.4OLE拖放,OLE拖放,是指将一个控件或应用程序中的数据移动到另一个控件或应用程序中。如果要使一个控件中的数据可以用OLE拖走,必须要对控件的OLEDragMode属性进行设置。如果要使另一个控件接收拖来的数据,也必须要对控件的OLEDropMode属性进行设置。OLEDragMode属性的值只有0和1。0表示“手动”,即必须编写程序来处理OLE的拖放操作;1表示“自动”,即控件可以自行处理它所接受的OLE拖放操作。如果要令控件中的数据可以被用OLE拖走,必须将控件的OLEDragMode属性设置为1。,64,第三章用户界面设计,3.10鼠标与键盘事件,3.10.4OLE拖放,OLEDropMode属性的值有0、1、2。0表示“不接受”(默认);1表示“手动”,即当放下拖动对象时,将触发OLEDragDrop事件,此时可以编写程序来处理;2表示“自动”,即如果拖动对象的数据格式可以被控件识别,则接受控件可以自动接收OLE拖放的数据。如果要令接受控件接收OLE拖放的数据,必须将接收方控件的OLEDropMode属性设置为2。,65,第三章用户界面设计,3.11窗体,3.11.1窗体的添加,用菜单添加新窗体的步骤如下:从“工程”菜单中选择“添加窗体”命令。系统将显示“添加窗体”对话框。该对话框的“新建”选项卡用于创建一个新窗体,列表框中列出了各种新窗体的类型,选择其中的“窗体”选项时,建立一个空白的新窗体。如果添加已存在的窗体,则选择“现存”选项卡。单击“打开”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论