第4章 应用界面设计_第1页
第4章 应用界面设计_第2页
第4章 应用界面设计_第3页
第4章 应用界面设计_第4页
第4章 应用界面设计_第5页
已阅读5页,还剩139页未读 继续免费阅读

下载本文档

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

文档简介

VB程序设计教程,主编:陈素教授,第四章应用界面设计,4.1窗体4.2控件基础4.3选择性控件4.4列表框、组合框及文件系统控件4.5图形控件和绘图方法4.6MDI窗体4.7菜单设计4.8工具栏和状态栏4.9对话框4.10键盘与鼠标事件,4.1窗体,4.1.3,4.1.1窗体的结构与基本属性,1.窗体的结构与Windows环境下的应用程序窗口一样,VB中的窗体也具有控制菜单、标题栏、最大化/还原按钮、最小化按钮、关闭按钮及边框,窗体,4.1.1窗体的结构与基本属性,2.创建新窗体的步骤如下(1)从“工程”菜单中选择“添加窗体”菜单项。(2)缺省情况下系统将显示“添加窗体”对话框,添加窗体对话框,4.1.1窗体的结构与基本属性,创建新窗体的步骤如下(3)在对话框中选择“标准EXE”选项时,建立一个空白的新窗体。(4)单击“打开”按钮,一个新的空白窗体被加入到当前工程中,同时会显示在屏幕上。3.窗体的属性通过属性面板设置,4.1.1窗体的结构与基本属性,【范例4-1】窗体属性的设置建立如图所示的界面步骤如下:1、在属性面板中设置窗体的Caption属性为“窗体属性设置举例”2、按照同样的方式分别设置窗体的Height、Width属性为4000、6000(单位:Twip)。,4.1.2窗体的事件,1Load事件Load事件发生在窗体被装入内存时,且发生在窗体出现在屏幕之前。窗体出现之前,VB会看一看Load事件里有没有代码,如果有,那么它先执行这些代码,再让窗体出现在屏幕上。2Click与DblClick事件这两个事件在单击或双击窗体的空白区域时发生。但单击窗体里的控件时,窗体的Click事件并不会发生。3Activate与Deactivate事件显示多个窗体时,可以从一个窗体切换到另一个窗体。每次激活一个窗体时,发生Activate事件,而前一个窗体发生Deactivate事件。,4.1.2窗体的事件,4UnLoad事件它的作用是从内存中清除一个窗体。卸载后如果要重新装入窗体,那么新装入的窗体上的所有控件都需要重新初始化。5QueryUnload事件该事件发生在一个窗体或应用程序关闭之前。通过设置Cancel参数的值为除0以外的任何值,阻止该窗体和应用程序的关闭,该事件的典型用法是在关闭一个应用程序之前用来确保包含在该应用程序中的窗体中是否有未完成的任务。,4.1.2窗体的事件,【范例4-2】编写程序测试窗体事件的触发时刻。步骤如下:1、如图所示,首先在对象框中选择Form,然后在事件框中选择Click,VB开发环境会生成如下所示的代码:,其中:是选择对象;是选择事件;是自动生成的代码,4.1.2窗体的事件,步骤如下:2、编写事件代码如下:PrivateSubForm_Click()Debug.Print窗体的Click事件被触发EndSub说明:加粗部分为添加的代码,其他为开发环境生成。Debug.Print可以在立即窗口)中显示相关的信息,因其不会包含在最终发布的程序中,所以经常被用来做程序调试信息的输出。(立即窗口可通过选择【视图】-【立即窗口】打开),4.1.2窗体的事件,步骤如下:3、按照同样的方式添加其他事件的处理程序,结果如下:PrivateSubForm_DblClick()Debug.Print窗体的DblClick事件被触发EndSubPrivateSubForm_Load()Debug.Print窗体的Load事件被触发EndSub,4.1.2窗体的事件,步骤如下:PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)canquit=MsgBox(真的要退出吗?,vbYesNo)Ifcanquit=vbYesThenCancel=FalseElseCancel=TrueEndSubPrivateSubForm_Unload(CancelAsInteger)Debug.Print窗体的Unload事件被触发EndSub4、运行程序,依次单击、双击、关闭窗体,观察窗体事件的触发。,4.1.2窗体的事件,【范例4-3】通过代码方式实现例4-1的效果。PrivateSubForm_Load()Me.Caption=窗体属性设置举例Me.Height=4000单位为Twip(缇)Me.Width=6000EndSub,4.1.3窗体的方法和语句,1Load语句该语句用来将新创建的窗体加载到内存中,当VB加载窗体对象时,先把窗体属性设置为初始值,再执行Load事件过程。当应用程序开始运行时,VB自动加载并显示应用程序的启动窗体。其语法如下:Load,4.1.3窗体的方法和语句,2Show方法用来显示一个已经装入内存的窗体。其语法如下:窗体名.Show模式其中“模式”有两个取值:0(vbModeless,默认值)表示非模化的,窗口显示的同时可以执行程序中其它窗口中的代码,1(vbModal)表示模化的,只有在关闭本窗口之后才能执行程序中其它窗口中的代码。3Hide方法用于隐藏显示在屏幕上的窗体。隐藏窗体时,将从屏幕上删除窗体,并将其Visible属性设置为False。用户将无法访问隐藏窗体上的控件,但是运行中的VB应用程序并不卸载它,仍然可以使用隐藏窗体的控件。其语法如下:窗体.Hide,4.1.3窗体的方法和语句,4Unload语句用来卸载窗体。在窗体卸载之后,所有在运行时放到该窗体上的控件都不再是可访问的,在设计时放到该窗体上的控件将保持不变。对窗体上任何控件的访问都会导致窗体重新加载,但在重新加载窗体时,在运行时对这些窗体上的控件及其属性的任何更改将会丢失,所有对于窗体属性的更改也将会丢失。其语法如下:Unload窗体名,4.1.3窗体的方法和语句,【范例4-4】窗体的方法使用范例步骤如下:1、建立2个窗体,分别命名为Form1、Form2。2、在Form1中,编写代码如下:PrivateSubForm_Click()LoadForm2Form2.ShowvbModelessvbModeless为VB保留关键字,指非模化窗体EndSub3、运行程序,单击窗体Form1。4、修改vbModeless为vbModal重新运行程序,比较两次运行结果的不同。,4.2控件基础,4.2.4,4.2.3,4.2.5,4.2.6,4.2.1控件的分类,VB控件分为三类,即内部控件、ActiveX控件和可插入对象。内部控件指的是在VB开发环境中,初始状态下工具箱中所包含的一系列控件。如文本框(Textbox)、标签(Label)、命令按钮(CommandButton)等,ActiveX控件是VB控件箱的扩充部分,这些控件在使用之前必须添加到工具箱中。可插入对象是由其他应用程序创建的对象,利用可插入对象,就可以在VB应用程序中使用其他应用程序的对象,例如在程序中使用Word、Excel等。,4.2.2控件的公共属性,Name属性每个控件都有名称属性,用于设置控件的名字。创建控件时,新对象的默认名字由对象类型加上一个唯一的整数组成。例如,第一个新的Form对象是Form1,第二个为Form2,以此类推。控件的Name属性可以包括字母、数字和下划线,但不能包括标点符号和空格。通常,为了使用的方便,一般会给控件起一个有意义的名字。该属性是只读属性,只能通过属性窗口进行设置,在运行时对象的名称不能改变。,4.2.2控件的公共属性,Caption属性该属性用来定义对象标题。当创建一个新对象时,其缺省标题包括对象名和一个整数,如:Form1、Command1等。这里,字符串是要设置的对象的标题。除Label控件的标题最多可达1024个字符外,对于其他的所有有标题的控件和窗体,标题大小的限制是255个字符。Enabled属性该属性用来确定一个对象是否能对用户产生的事件做出响应。对象的Enabled属性值为布尔型。当Enabled属性值设置为False时,运行时相应的对象呈灰色显示,用户不能访问。默认值为True。,4.2.2控件的公共属性,Visible属性该属性为布尔型,用来确定一个对象是否可见。当Visible属性值设置为False时,运行时相应的对象不可见;当Visible属性值设置为True时,运行时相应的对象可见,默认值为True。注意:该属性只有在运行时才起作用。BackColor、ForeColor属性BackColor属性返回或设置背景颜色。可用属性窗口设置,也可在程序中用颜色参数向BackColor属性赋值。ForeColor属性返回或设定前景颜色。,4.2.2控件的公共属性,Height、Width属性用来指定对象的高度和宽度,其单位为twip,即1点的1/20(1/1440英寸)。若不指定高度和宽度,则运行后的对象与设计时的大小相同。Left、Top属性这两个属性用于返回或确定对象左上角位置的坐标值,单位为twip。ToolTipText返回或设置控件的工具提示。当运行时光标在对象上停留约一秒时,该字符串将显示在该对象下面的一个小矩形框中,,4.2.2控件的公共属性,FontName、FontSize、FontBold、FontItalic、FontStrikethru、FontUnderline属性FontName:确定在控件中显示文本用的字体。FontSize:确定在控件中显示文本用的字号。FontBold:确定在控件中显示文本是否用粗体样式。FontItalic:确定在控件中显示文本是否用斜体样式。FontStrikethru:确定在控件中显示的文本是否带有删除线。FontUnderline:确定在控件中显示的文本是否带有下划线。注意:使用这些属性对PictureBox控件及Form、Printer对象上已经打印的文本不起作用;但对其它控件,这些属性的改变会立即生效。,4.2.3焦点与Tab键序,1.焦点焦点是接收用户鼠标或键盘输入的能力。当对象具有焦点时,可接收用户的输入。使用以下的操作方法可以将焦点赋予对象:运行时选择对象。运行时用快捷键选择对象。在代码中使用SetFocus方法。,4.2.3焦点与Tab键序,2.Tab键序所谓Tab键序指的是在用户按下Tab键时,焦点在控件间移动的顺序。每个窗体都有自己的Tab键序。默认状态下Tab键序与建立这些控件的顺序相同。例如在窗体上建立3个命令按钮Command1,Command2和Command3,程序启动时Command1首先获得焦点。当用户按下Tab键时焦点依次向Command2、Command3转移。,4.2.4命令按钮,命令按钮(CommandButton)通常用于当用户单击时完成某种任务,是VB应用程序中使用最多的控件之一。命令按钮的常用属性如表所示,4.2.5标签,标签(Label)控件用于显示不能编辑的文本信息,一般用于在窗体上进行说明。标签控件的常用属性如表所示。,4.2.6文本框,文本框控件(TextBox)是一个通用控件,在窗体中为用户提供一个既能够显示又能够编辑文本的区域。1.属性参见课本表4-42事件和方法Change事件:该事件当用户改变正文或通过代码改变Text属性的设置时发生。GetFocus事件:当对象获得焦点时产生该事件;获得焦点可以通过诸如TAB切换,或单击对象之类的用户动作,或在代码中用SetFocus方法改变焦点来实现。,4.2.6文本框,文本框控件(TextBox)2事件和方法LostFocus事件:此事件是在一个对象失去焦点时发生,焦点的丢失或者是由于Tab键移动或单击另一个对象操作的结果,或者是代码中使用SetFocus方法改变焦点的结果。,4.2.6文本框,【范例4-5】创建一个如图所示的登录窗体。步骤如下:1在窗体上建立3个标签、2个文本框、2个命令按钮控件,调整它们的位置及大小,并按课本表4-5设置属性,4.2.6文本框,【范例4-5】创建一个如图所示的登录窗体。2对两个命令按钮编写代码如下:PrivateSubCommand1_Click()If(txtUserName.Text=AdminAndtxtPassword.Text=password)ThenlblResult.Caption=“登录成功”ElselblResult.Caption=请使用正确的用户名和密码登录txtUserName.SetFocusEndIfEndSub,4.2.6文本框,【范例4-5】创建一个如图所示的登录窗体。PrivateSubCommand2_Click()End结束程序EndSub3为了使光标定位到文本框中时,文本框中的内容能够被自动选中,在两个文本框的GotFocus事件中编写代码如下:PrivateSubtxtUserName_GotFocus()txtUserName.SelStart=0txtUserName.SelLength=Len(txtUserName.Text)EndSub,4.2.6文本框,【范例4-5】创建一个如图所示的登录窗体。PrivateSubtxtPassword_GotFocus()txtPassword.SelStart=0txtPassword.SelLength=Len(txtPassword.Text)EndSub,4.2.6文本框,【范例4-6】文本框属性、事件测试。该示例通过编程实现圆的周长与面积的计算,说明Change事件以及MultiLine、ScrollBars属性的使用。步骤如下:1在窗体上新建1个标签、2个文本框,调整它们的位置及大小,并按课本表4-6设置属性,4.2.6文本框,【范例4-6】文本框属性、事件测试。2在文本框1的Change事件中编写代码如下:PrivateSubtxtRadius_Change()DimintRadiusAsDoubleConstPIAsDouble=3.14159intRadius=Val(txtRadius.Text)txtResult.Text=您所输入的圆Picture1.CurrentX;,;Picture1.CurrentYPicture1.CurrentX=300Picture1.CurrentY=300,4.5.1图片框,【范例4-14】图片框中文本信息的输出。Picture1.Print当前坐标:;Picture1.CurrentX;,;Picture1.CurrentYPicture1.Print当前坐标:;Picture1.CurrentX;,;Picture1.CurrentYEndSub3单击图片框,查看效果如图所示。,4.5.2图像框,图像框在工具箱中的名称为lmage,也用于显示图像。图像框的默认名为:ImageX,(X=1,2,3)。1属性picture属性和LoadPicture函数和PictureBox控件一样,可以在属性窗口通过设置lmage控件的Picture属性来添加一幅图像,也可以在代码中使用LoadPicture函数进行图像的添加或清除。Stretch属性返回或设置一个值,该值用来指定一个图形是否要调整大小,以适应Image控件的大小。该属性可通过属性窗口设置,也可用程序代码设置。当属性值为False时,自动调整控件大小以适应图像,4.5.2图像框,图像框2事件和方法图像框控件可以接收Click(单击)和DblClick(双击)事件。3图片框与图像框的比较图片框和图像框都是VB中用于显示图形信息的内部控件,它们在使用中有以下区别:图片框可以作为父控件,而图像框不能作为父控件。即图像框中不可以包含其它控件,而图片框中可以包含其它控件。图片框可以可以通过Print方法接收文本,而图像框则不能。图像框控件可以自动缩放图片以适应控件的大小,而图片框不能进行图片缩放。因为图像框比图片框使用较少的系统资源,所以重画起来比图片框要快,但是它只支持图片框的一部分属性、事件和方法。在两者都能满足要求的情况下,应首先考虑使用图像框。,4.5.3线条和形状控件,1线条控件线条(Line)用来在窗体、框架或图片框中创建简单的线段。通过属性设置可控制线条的位置、长度、颜色和样式来定义应用程序的外观。线条的常用属性参照课本表4-182形状控件形状(Shape)控件可以在窗体,框架或图片框中创建矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形。可以设置形状的样式、颜色、填充样式、边框颜色和边框样式等。形状控件的常用属性参照课本表4-19,4.5.3线条和形状控件,【范例4-15】线条与形状控件的使用。此示例完成一个循环颜色选择的窗口,效果如图,4.5.3线条和形状控件,【范例4-15】线条与形状控件的使用。步骤如下:1在窗体上放置4个形状控件、1个线条控件、1个按钮控件、1个标签控件、1个计时器控件,调整它们的位置及大小,并参照表4-20设置属性2编写代码如下:,4.5.3线条和形状控件,【范例4-15】线条与形状控件的使用。DimcurrentIndexAsIntegerPrivateSubCommand1_Click()IfCommand1.Caption=开始ThenCommand1.Caption=停止Timer1.Enabled=TrueElseCommand1.Caption=开始Timer1.Enabled=FalseEndIfEndSubPrivateSubTimer1_Timer()currentIndex=(currentIndex+1)Mod3SelectCasecurrentIndex,4.5.3线条和形状控件,【范例4-15】线条与形状控件的使用。Case0ShapeSelect.Left=ShapeColor(currentIndex).LeftLabel1.Caption=当前选中:红色Case1ShapeSelect.Left=ShapeColor(currentIndex).LeftLabel1.Caption=当前选中:黄色Case2ShapeSelect.Left=ShapeColor(currentIndex).LeftLabel1.Caption=当前选中:绿色EndSelectEndSub,4.5.4坐标系统,坐标系统是一个二维网格,可定义屏幕上、窗体中或其它容器中(如:图片框或Printer对象)的位置。对象的坐标系统是绘制各种图形的基础,坐标系统选择的恰当与否直接影响着绘图的质量。因此,在绘制图形前,必须首先确定坐标系统。在VB中坐标系统大体上可以分为两类,即默认坐标系统、自定义坐标系统。,4.5.4坐标系统,1.默认坐标系统系统默认的对象坐标系统是以对象左上角为坐标原点(0,0),坐标值沿水平坐标轴向右、垂直坐标轴向下增加。沿坐标轴定义位置的度量单位称为刻度,也称为坐标单位,坐标系统中的每个坐标轴都有自己的坐标单位。2.自定义坐标系统有时为了绘图的方便,可能不希望使用默认坐标系统,为此,VB允许用户根据需要定义自己的坐标系统。可以通过两种方式自定义坐标系统:(1)使用ScaleLeft、ScaleTop、ScaleHeight、ScaleWidth设置坐标系统(2)用Scale方法定义坐标系统,4.5.4坐标系统,1.默认坐标系统系统默认的对象坐标系统是以对象左上角为坐标原点(0,0),坐标值沿水平坐标轴向右、垂直坐标轴向下增加。沿坐标轴定义位置的度量单位称为刻度,也称为坐标单位,坐标系统中的每个坐标轴都有自己的坐标单位。2.自定义坐标系统有时为了绘图的方便,可能不希望使用默认坐标系统,为此,VB允许用户根据需要定义自己的坐标系统。可以通过两种方式自定义坐标系统:(1)使用ScaleLeft、ScaleTop、ScaleHeight、ScaleWidth设置坐标系统(2)用Scale方法定义坐标系统,4.5.5图形方法,1.PSet方法PSet方法可以在窗体或图片框指定的位置用给定的颜色画一个“点”。点的大小由对象的DrawWidth属性指定。PSet方法的使用格式如下:FormName|PictureboxName.PSetStep(x,y),Color,4.5.5图形方法,【范例4-16】实现五彩纸屑。五彩纸屑效果是由屏幕上随机闪烁的色彩块组成,在此示例中将使用PSet方法实现一个五彩纸屑的效果。,4.5.5图形方法,【范例4-16】实现五彩纸屑。步骤如下:1、在窗体上放置1个计时器控件,并设置Intervel属性为100。2、编写如下代码:PrivateSubTimer1_Timer()DimMsg,XPos,YPosScaleMode=3设置ScaleMode为像素。DrawWidth=5设置DrawWidth.ForeColor=RGB(255,0,0)设置前景为亮红色。FontSize=24Cls清窗体。Msg=五彩纸屑,4.5.5图形方法,【范例4-16】实现五彩纸屑。CurrentX=ScaleWidth/2-TextWidth(Msg)/2水平位置。CurrentY=ScaleHeight/2-TextHeight(Msg)/2垂直位置。PrintMsgFori=1To100XPos=Rnd*ScaleWidth得到水平位置。YPos=Rnd*ScaleHeight得到垂直位置。PSet(XPos,YPos),QBColor(Rnd*15)画五彩碎纸。NextEndSub,4.5.5图形方法,2.Line方法Line方法用于在窗体或图片框对象上画直线或矩形。(1)绘制直线使用格式如下:object.LineStep(x1,y1)-Step(x2,y2),color(2)绘制矩形绘制矩形时仍使用Line方法,它有两种操作方法:一是用绘制直线的办法依次画出矩形的四条边。二是通过指定矩形的左上角和右下角坐标完成绘制过程。使用格式如下:object.LineStep(x1,y1)-Step(x2,y2),color,B,F,4.5.5图形方法,3.Circle方法Circle方法可用于在窗体、图片框或打印机上绘制圆、椭圆、弧等图形,属性DrawWidth、DrawStyle、FillColor、FillStyle等在Circle方法中也同样适用。Circle方法格式如下objectname.CircleStep(x,y),radius,colorstart,end,aspect,4.5.5图形方法,【范例4-17】使用Circle方法绘制圆、椭圆、弧、扇形。,4.5.5图形方法,【范例4-17】使用Circle方法绘制圆、椭圆、弧、扇形。PrivateSubForm_Click()ConstPIAsSingle=3.14159DrawWidth=2FillStyle=1Circle(1000,1000),500画圆Circle(2500,1000),500,0.6Circle(2500,2500),500,1.5Circle(4000,1000),500,PI/3,5*PI/3Circle(4000,2500),500,-PI/3,-5*PI/3FillStyle=6改变填充模式Circle(1000,2500),500,vbBlueEndSub,4.6MDI窗体,4.6.1界面样式,1.对话框(Dialog)对话框是一种最简单的用户界面样式,在基于Windows的应用程序中,对话框被用来提示用户提供应用程序继续执行所需要的数据、向用户显示信息。2.单文档界面(SDI)单文档界面是像NotePad(记事本)或MicrosoftPaint(画笔)这样的窗体。它一次只能打开一个文档,想要打开另一个文档时,必须先关上已打开的文档。3.多文档界面(MDI)像MicrosoftExcel这样的应用程序就是MDI界面(如图4-27),它们允许同时显示多个文档,每一个文档都显示在自己的窗口中。,4.6.1界面样式,MDI界面示例,4.6.2多文档界面,1.MDI窗体介绍多文档界面(MultipleDocumentInterface,即MDI)是Windows应用程序的典型结构。利用MDI,可在一个包容式窗体中包含多个窗体;可同时显示多个文件(文档),每个文件都在自己的窗口内显示。这种应用程序由“父窗口”和“子窗口”构成。MDI窗体具有自已的特性。(1)主窗口MDI窗体(称父窗体)只能有且必须有一个。(2)子窗体至少有一个。(3)所有的子窗体无论如何操作都不能移出MDI窗体。(4)子窗体最小化后的图标位于MDI窗体的底部(不是在任务栏)。,4.6.2多文档界面,1.MDI窗体介绍MDI窗体具有自已的特性。(4)子窗体最小化后的图标位于MDI窗体的底部(不是在任务栏)。(5)父窗体最小化时(图标在任务栏),所有的子窗体也同时最小化且MDI窗体及其所有子窗体将由一个图标来代表。(6)还原MDI窗体时MDI窗体及其所有子窗体将按最小化之前的状态显示出来。(7)通过设置子窗体的AutoShowChildren属性,可以在程序加载时自动显示或隐藏该窗体。,4.6.2多文档界面,2.创建MDI窗体首先进入VB的系统集成环境,建立新的工程文件,此时,Form1新窗体出现。选择主菜单中“工程”中的“添加MDI窗体”,在随后出现的对话框中单击“打开”命令按钮,即出现MDI主窗体,4.6.2多文档界面,3.创建MDI子窗体在建立了MDI父窗体之后,普通窗体还不是MDI中的一员,要想让它成为子窗体,必须将其MDIChild属性设置为True。为了便于编程人员区分窗体的类型,在VB中,MDI窗体、子窗体以及普通窗体在资源管理器中分别标以不同的图标,其中:是普通窗体图标;是子窗体图标;父窗体图标,4.6.2多文档界面,【范例4-18】MDI窗体示例。本示例将完成一个MDI的示例窗体,点击新窗体按钮时将显示一个新的子窗体,4.6.2多文档界面,【范例4-18】MDI窗体示例。操作步骤如下:1新建1个MDI窗体、1个普通窗体,调整它们的大小并设置MDI窗体为启动窗体。2在MDI窗体上新建1个图片框(因为MDI上不能直接放置按钮控件,因此以图片框作为存放按钮控件的容器)、1个命令按钮控件,调整它们的位置及大小,并参照表4-24设置属性如下:,4.6.2多文档界面,【范例4-18】MDI窗体示例。3编写代码如下:DimiAsInteger此部分在窗体的通用部分,为窗体级变量,记录窗体序号PrivateSubCommand1_Click()DimfrmAsNewForm1i=i+1frm.Caption=子窗体&ifrm.ShowEndSub,4.7菜单设计,4.7.4,4.7.3,4.7.1菜单的基本概念,菜单是应用系统的组成部分之一,它一般由菜单栏和下拉菜单组成,如VB的系统集成环境中的菜单栏从结构上看,菜单可分成若干级,第一级是菜单栏,它包括若干菜单项,菜单项为横向排列,每一菜单项都可对应一个下拉式子菜单,子菜单中的选项竖向排列,同时子菜单中的每一项又可对应有自已的下拉菜单,4.7.2菜单编辑器,菜单编辑器:1在窗体设计阶段,右键单击窗体空白区域,在弹出的快捷菜单中选择【菜单编辑器】。2在菜单栏中选择【工具】【菜单编辑器】。,4.7.3菜单代码设计,与菜单项相关联的Click事件用于定义在选择该菜单项时触发的事件,菜单或菜单项有且只有Click事件,其编码方式与普通的事件处理代码类似。,4.7.3菜单代码设计,【范例4-19】菜单示例。本示例将完成一个菜单的模拟运行效果,点击相应菜单项,将完成简单功能。操作步骤如下:1在窗体上新建1个文本框,并按表4-25设置属性2打开菜单编辑器,依次添加如下菜单项,结果如图所示:,4.7.3菜单代码设计,【范例4-19】菜单示例。,4.7.3菜单代码设计,【范例4-19】菜单示例。3编写代码如下:DimstrTextAsString此变量用来保存文本框中内容PrivateSubmnuNew_Click()Text1.Text=EndSubPrivateSubmnuOpen_Click()Text1.Text=strText从变量中还原文本框内容EndSubPrivateSubmnuSave_Click()strText=Text1.Text将文本框内容保存到变量中EndSub,4.7.3菜单代码设计,【范例4-19】菜单示例。PrivateSubmnuExit_Click()EndEndSubPrivateSubmnuCopy_Click()Clipboard.SetTextText1.SelTextEndSubPrivateSubmnuCut_Click()Clipboard.SetTextText1.SelTextText1.SelText=EndSubPrivateSubmnuPaste_Click()Text1.SelText=Clipboard.GetTextEndSub,4.7.4弹出式菜单,弹出式菜单,只需用户在窗体上单击某一鼠标键(一般为鼠标右键)就可立即弹出该菜单,从而加快用户的操作,所以弹出式菜单也称为快捷菜单。显示弹出式菜单,可以使用PopupMenu方法,该方法的语法如下:PopupMenu“菜单名”,flags,x,y,boldcommand,4.7.4弹出式菜单,【范例4-20】弹出式菜单。步骤如下:1在窗体上放置1个标签控件,并使用菜单编辑器按表4-27建立菜单2为窗体加载编写代码如下:PrivateSubForm_Load()Label1.FontSize=16Label1.Caption=使用快捷菜单改变标签字体EndSub,4.7.4弹出式菜单,【范例4-20】弹出式菜单。4.单击鼠标右键显示菜单:PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=vbRightButtonThenPopupMenumnuFonts,mnuSongTi如果点击的是右键,才弹出快捷菜单EndIfEndSub,4.8工具栏和状态栏,4.8.3,4.8.1ActiveX控件简介,ActiveX控件是一个动态链接库,是作为基于COM服务器进行操作的,并且可以嵌入在包容器宿主应用程序中。由于ActiveX控件与开发平台无关,因此,在一种编程语言上开发的ActiveX控件可以无须任何修改,即可在另一种编程语言中使用,其效果如同使用Windows通用控件一样。,4.8.1ActiveX控件简介,要使用一个ActiveX控件,可通过部件对话框(从工程菜单中点击部件菜单项打开)将此控件添加到工具箱中,如图所示。,4.8.2工具栏,工具栏是是Windows公共控件之一,由多个按钮组成。运行时,单击工具栏中的按钮,就可以快速执行常用的操作。在VB中,可用Toolbar控件来创建工具栏。1ImageList控件ImageList控件用于为其他控件(如Toolbar、TreeView等)提供图像资源,在运行时不显示,不能单独使用。ImageList控件类似于一个图像仓库,它使程序员不用编写代码来加载图像,而可以一次性将用到的所有图像增加ImageList控件中,需要时可以在代码中对其中的图像进行引用。ImageList控件有一个重要属性,即ListImages属性,该属性指向ListImage对象的集合。每个ListImage对象存放的是图像文件。,4.8.2工具栏,在已添加的ImageList控件上右击,打开快捷菜单后点击属性,弹出如图所示的窗口,在该窗口中可以添加图片,并设置每个图片的关键字及标记等。其中,关键字是图片的唯一标志,可以通过关键字来使用该图片。,4.8.2工具栏,2Toolbar控件Toolbar控件用来创建工具栏。Toolbar控件有一个重要属性就是Buttons属性,该属性是指向Button对象的集合。通过将Button对象添加到Buttons集合中,就可以创建工具栏。还可以将其他控件(如文本框或组合框等)加入到Toolbar控件。创建工具栏的基本步骤如下:1创建ImageList控件来保存要使用的图像;2将Toolbar控件与ImageList控件相关联,这可以通过在工具栏的属性对话框中设置,如图所示。,4.8.2工具栏,2Toolbar控件,4.8.2工具栏,2Toolbar控件3创建Button对象并设置Button对象属性,同样的可以通过工具栏的属性对话框设置,如图所示。,4.8.3状态栏,StatusBar控件一般位于窗体的底部,用于向用户显示系统的一些状态及其它信息。StatusBar控件是由Panels(窗格)集合构成,最多可包含16个Panel对象。每个Panel对象可以显示一个图像和文本。利用Panel的Style属性可以显示某些特殊的信息,包括时间、日期、是否大写锁定(CapsLock)、是否插入状态(Insert)等。,4.8.3状态栏,【范例4-21】工具栏与状态栏使用示例。本例将建立如图所示的界面,并实现单击不同的工具栏按钮,在状态栏上显示相关信息。,4.8.3状态栏,【范例4-21】工具栏与状态栏使用示例。步骤如下:1在窗体中放置一个名为ImageList1的ImageList控件,并在其属性对话框的“图像”属性页中添加两张图片。2在窗体中放置一个ToolBar控件,打开其属性对话框并切换到“通用”页面,将“图像列表”设置为ImageList1。在“按钮”页面中,单击“插入按钮”,增加两个按钮,两个按钮的“标题”、“关键字”和“图像”分别设置为:连接,mconnect,1和打开,mopen,2。3在窗体中放置一个StatusBar控件,打开其属性对话框并切换到“窗格”页面,单击“插入窗格”按钮增加一个新窗格,并设置其宽度为4000。,4.8.3状态栏,【范例4-21】工具栏与状态栏使用示例。4增加以下的代码,实现程序的功能:PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)If(Button.Index=1)ThenStatusBar1.Panels.Item(1).Text=连接网络If(Button.Index=2)ThenStatusBar1.Panels.Item(1).Text=打开文件EndSubPrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)StatusBar1.Panels.Item(2).Text=当前鼠标的位置是(&X&,&Y&)EndSub,4.9对话框,4.9.1通用对话框,在Windows系统中提供了一些通用对话框,进行诸如打开和保存文件、设置打印选项以及选择颜色和字体等操作。CommonDialog控件用于提供一组标准的常用操作对话框,在运行时,并不显示控件,但可以利用指定的方法,显示指对话框,见表,4.9.1通用对话框,【范例4-22】通用对话框使用示例。本例将使用菜单显示“打开”文件对话框以及颜色设置对话框,选定的文件的路径将显示在文本框中。颜色设置对话框可以改变文本框中

温馨提示

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

评论

0/150

提交评论