ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:178.63KB ,
资源ID:5970337      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5970337.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第6章VB界面设计.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

第6章VB界面设计.docx

1、第6章VB界面设计第6章 VB界面设计 6.1 基本要求1. 熟练掌握运用菜单编辑器建立菜单的方法;2. 掌握通用对话框的使用方法;3. 掌握窗体的显示与隐藏方法;4. 掌握在VB工程运用多重窗体的方法。6.2 知识点1. 通用对话框(CommonDialog)VB的通用对话框CommonDialog控件就是提供了基于Windows的标准对话框。CommonDialog控件不是VB的内部控件,它是ActiveX控件。使用时选择“工程”菜单的“部件”命令,来打开“部件”对话框。在其中选择“Microsoft Common Dialog Control 6.0”选项,将CommonDialog控件

2、添加到工具箱。VB通用对话框可以打开的Windows标准对话框界面有:“打开”对话框,“另存为”对话框,“颜色”对话框,“字体” 对话框,“打印” 对话框和“帮助” 对话框。在使用通用对话框控件打开标准对话框时,必须对它的一个Action属性进行设置或调用该控件的Show方法,那样才能真正地打开标准对话框中某一种类型的对话框。(1)打开对话框当在程序中把Action属性值设置为1时或调用了ShowOpen方法,就可以打开通用对话框的“打开”对话框。在“打开”对话框中,可以翻阅计算机的整个目录结构,查找所需要的文件。如下图6-1所示。图6-1打开对话框要真正实现文件的打开需要设置几个必要的属性:

3、 FileName:用于设置和得到用户所选的文件名(包括路径名),属性值为字符串。 FileTitle:用于返回文件名,不包含路径。 InitDir:用于指定初始化目录,或返回用户选择的文件目录。Filter:用于设置对话框的文件类型列表框中的过滤器。通过设定过滤器指定在文件类型列表框中显示的文件类型。其格式为:文件说明文件类型 FilterIndex:当指定一个以上的过滤器时,需使用该属性确定哪一个作为默认过滤器显示,默认值为1。(2)另存为对话框当在程序中把Action属性值设置为2时或调用了ShowSave方法,就可以打开通用对话框的“另存为”对话框。在“另存为”对话框中,可以翻阅计算机

4、的整个目录结构,查找所需要的信息。另存为对话框常用属性基本上与“打开”对话框相似,有一个DefaultExt属性是“另存为”对话框所特有的,它表示所存文件的默认扩展名。 (3)颜色对话框当在程序中把Action属性值设置为3时或调用了ShowColor方法,就可以打开通用对话框的“颜色”对话框。在“颜色”对话框的调色板中提供了基本颜色,还提供了用户的自定义颜色,即用户可以自己调色。如图6-2。图6-2颜色对话框颜色对话框的常用属性是Color属性,当用户在调色板中选定颜色后,该颜色值赋给Color属性。(4)字体对话框当在程序中把Action属性值设置为4时或调用了ShowFont方法,就可以

5、打开通用对话框的“字体”对话框。在“字体”对话框中,拥有可供用户选择的字体。如下图6-3。图6-3字体对话框在使用“字体”对话框之前,必须设置Flags属性,见下表。假如没有设置Flags属性值,则使用“字体”对话框时会显示错误提示。 属性Flags值说明CdlCFScreenFonts1屏幕字体CdlCFPrinterFonts2打印机字体CdlCFBoth3两者皆有cdlCFEffects100出现删除线、下划线、颜色元素(5)打印对话框当在程序中把Action属性值设置为5时或调用了ShowPrinter方法,就可以打开通用对话框的“打印”对话框。如下图6-4。图6-4打印对话框打印对话

6、框不能直接处理打印任务,它仅是一个供用户选择打印参数的界面,所选参数存于各属性中,再由编程来处理打印任务。属性如下表所示。 属性说明Copies指定打印份数FromPage打印起始页号ToPage打印终止页号(6)帮助对话框帮助对话框用于制作应用程序的联机帮助,它可将已创建的帮助文件取出,并与界面连接起来,达到显示并检索帮助信息的目的。当在程序中把Action属性值设置为6时或调用了ShowHelp方法,并且设定了HelpCommand、HelpFile属性值。如:CommonDialog1.HelpCommand = cdlHelpContentsCommonDialog1.HelpFile

7、 = c:windowssystem32winabc.hlpMe.CommonDialog1.Action = 6就可以打开通用对话框的帮助对话框。如下图6-5所示。图6-5 帮助对话框2. 菜单编辑器选择“工具”菜单的“菜单编辑器”命令,即可打开如图6-6所示的“菜单编辑器”窗口。图6-6菜单编辑器(1)菜单控件属性区标题:输入菜单标题及各菜单项的标题,也可以在菜单中创建分隔条。名称:输入菜单控件的名字,该名字用于在程序代码中引用菜单控件。索引:在创建菜单控件数组时作为索引。快捷键:允许为每个命令选定快捷键。复选:选择该项时,将一个复选框标志放置在菜单上(它只对子菜单项起作用)。有效:设置菜

8、单或菜单项当前有效。可见:设置菜单或菜单项当前可见。(2)编辑区左、右箭头:用来产生和消除内缩符号,即产生或消除子菜单。上、下箭头:每次单击都把选定的菜单项在同级菜单内向上、下移动一个位置。下一个:将选定移动到下一行。插入:在列表框的当前行上方插入新的菜单项。删除:删除当前选定的菜单项。(3)菜单控件列表框区 列表框区是用来列出当前窗体的所有菜单控件 当在标题文本框中键入一个菜单项时,该项也会出现在菜单控件列表框中。 在列表框中选取一个已存在的菜单控件,则可以编辑该控件的属性。 菜单控件在列表框中的位置决定了该控件是菜单标题、菜单项、子菜单标题还是子菜单项。3. 弹出菜单设计弹出菜单是独立于窗

9、体菜单而显示在窗体上的菜单,其显示的位置取决于单击鼠标时指针的位置。创建弹出菜单分为两步: 建立弹出菜单:使用菜单编辑器设计菜单,并设置弹出菜单的顶层菜单(主菜单项)为可见或不可见。 设置弹出菜单显示方式:使用PopupMenu方法来显示弹出菜单。PopupMenu方法的使用形式: 对象.PopupMenu 菜单名,标志,x,y标志:当标志为0时,弹出菜单的顶只能对鼠标左键起反应;当标志为1时,弹出菜单的顶只能对鼠标左键和右键都起反应;当标志为2时PopupMenu方法只能用在MouseDown事件过程。4. 多重窗体界面设计 添加窗体:创建一个新的窗体或把一个属于其他工程的窗体添加到当前工程

10、中。同一工程每个窗体的Name属性不能相同。 设置启动对象。5. 有关窗体的语句、方法 Load语句:把窗体装入内存。Load语句形式:Load 窗体名称 Unload语句:从内存中删除指定的窗体。Unload语句形式:Unload 窗体名称 Show方法:显示一个窗体,他兼有加载和显示窗体两种功能。其形式:窗体名称.Show 模式其中:“模式”用来确定窗体的状态,有0和1两个值 。若“模式”为1,表示窗体是“模式型”(Modal)的,用户无法将鼠标移到其他窗口,也就是说,只有在关闭该窗体后才能对其他窗口进行操作。若“模式”为1,表示窗体是“非模式型”(Modeless)的,可以对其他窗口进行

11、操作。“模式”的缺省值为0。“窗体名称” 缺省时为当前窗口。 Hide方法:将窗体暂时隐藏起来,并没有从内存中删除。其形式为:窗体名称. Hide6. 多文档界面的设计开发多文档界面的一个应用程序至少需要两个窗体:一个MDI窗体和一个或若干个子窗体。在不同窗体中共用的过程、变量应存放在标准模块中。 创建和设计MDI窗体MDI窗体的默认名称为MDIForm1,大部分的控件不能放置在MDI窗体中,在此窗体中只能放置菜单、具有Align属性的控件和具有不可见界面的控件。 创建MDI子窗体先创建一个新窗体(或者打开一个存在的窗体),然后将它的MDIChild属性设置为True。 编写程序代码建立了MD

12、I父窗体、子窗体后,就可以根据要求编写程序代码,其过程与单一窗体相同。 加载MDI窗体与子窗体在MDI应用程序中,由于加载子窗体时,其父窗体(MDI窗体)会自动加载并显示。当子窗体被设置为默认的启动窗体时,程序运行后子窗体和MDI窗体两者都会加载。而加载MDI窗体时,其子窗体并不会随着MDI窗体的加载而自动加载,因此当设置MDI窗体为启动窗体时,程序运行后只有MDI窗体被加载,若要加载子窗体则应使用Show 方法。7. MDI的属性、事件(1)MdiChild属性:设置一个窗体是否被作为MDI子窗体在一个MDI窗体内部显示。(2)ScrollBars属性:设置一个MDI窗体是否有水平滚动条或垂

13、直滚动条。(3)WindowState属性该属性可以取三种值:若取值为0(默认值)表示正常显示窗体;取值为1表示最小化,即将窗体缩小为一个图标;取值为2表示最大化,即将窗体充满屏幕,在MDI应用程序中子窗体将充满MDI父窗体。(4)Arrange方法:用于重排MDI窗口中的子窗体或图标。格式为:MDI窗体. Arrange 方式其中:“MDI窗体”是需要重新排列的MDI窗体名字,在该窗体内有子窗体或图标;“方式”指定重排MDI窗体中子窗体或图标的方式。(5)QueryUnload事件在一个窗体或应用程序关闭之前触发该事件。当MDI窗体被卸载时,QueryUnload事件首先为MDI窗体调用,然

14、后再为每一个打开的子窗体调用。由于QueryUnload事件在窗体卸载之前被调用,因此可以在事件过程中编写代码,使得用户能够在窗体卸载前保存那些被修改的窗体。 6.3 疑难解析1. 在工程中添加现有窗体时发生加载错误在使用“工程”菜单中的“添加窗体”命令添加一个现存的窗体时经常发生加载错误,绝大多数是因为窗体名称冲突的缘故。例如,假定当前打开了一个含有名称为Form1的工程,如果想把属于另一个工程的Form1窗体装入则肯定会出错。其实窗体名和窗体文件名可以使用不同的名称,不一定非要相同,但是为了不造成混乱,二者的名称最好一致。在一个工程中,可以有两个窗体文件名相同的窗体(须在不同的文件夹中),

15、但是绝对不能同时出现两个窗体名相同的窗体。2. 装入多窗体程序时出现对象不存在的错误对于单窗体程序的加载,通常可以通过.vbp文件,有时也可以直接单击.frm窗体文件。但对于多窗体程序的加载必须通过.vbp文件,它把属于该工程的所有文件(包括.frm文件和.bas文件)装入内存。如果通过单击多窗体程序中某一窗体文件,只能加载该窗体文件,其他文件不能自动装入内存,程序运行时将出现对象不存在的错误。此外,对于多窗体程序的编辑,当变化了窗体数量后,必须重新保存工程文件,否则,工程文件不包括新增的窗体文件。对于记录在工程文件中的窗体文件和模块文件,必须注意所在的目录位置。在复制多窗体程序对应的文件时不

16、要遗漏,否则,在下次加载时会产生对象不存在的错误。3. 多窗体调用时出现对象不存在的错误当用Show方法调用其他窗体时,被调用的窗体必须用窗体对象名,而不是窗体文件名。否则,会产生实时错误424,要求对象。4. 在窗体加载过程中使用SetFocus方法出现“无效的过程调用或参数”错误焦点只能移动可视的窗体或控件上。在窗体的Load事件完成前窗体或窗体上的控件是不可视的,所以不能在Form_Load事件中把焦点移到正在加载的窗体上,也不能在Load事件内使用SetFocus方法将焦点移到窗体上的控件。此外,也不能把焦点移到Enabled或Visible属性被设置为False的窗体或控件。如果已在

17、设计时将Enabled或Visible属性设置为False,必须在使用SetFocus方法前将Enabled或Visible属性设置为True。5. 与窗体有关的事件在首次用Load语句将窗体(假定该窗体在内存中还没有创建)调入内存之时依次发生Initialize和Load事件。Initialize是在窗体创建时发生的事件。在窗体的整个生命周期中,Initialize事件只触发一次。用户可以将一个窗体装入内存或从内存中删除很多次,但窗体的建立只有一次。也就是说,在用Load语句将窗体装入内存时会触发Load事件,但并不一定触发Initialize事件。在窗体从内存中卸载时依次发生QueryUn

18、load和Unload事件。QueryUnload事件可提供造成窗体卸载的原因,即是单击“关闭”按钮,或是程序中执行Unload语句,或在应用程序中关闭,或者是在Windows中的关闭。如果在QueryUnload事件中把QueryUnload的参数Cancel设置为True,就会忽略Unload语句,从而不卸载窗体。所以QueryUnload提供了取消关闭窗体的机会,同时也允许在需要时从代码中关闭窗体。如果使用End 语句来结束程序,窗体不会接收到QueryUnload事件。而窗体Activate事件仅当窗体成为活动窗口时才发生,窗体必须可见。6. 在程序中对通用对话框的属性设置不起作用在程

19、序中对通用对话框的属性设置必须注意语句的先后顺序,属性设置语句必须放在打开对话框语句前,否则在程序中对通用对话框的属性设置在本次使用中不起作用。例如,下面的程序代码由于先打开对话框,再进行属性设置。在第一次执行本段代码时,无法过滤文件,ShowOpen语句后面的属性设置语句对下一次执行ShowOpen有效。 CommonDialog1.ShowOpen CommonDialog1.FileName = *.bmp CommonDialog1.InitDir = c:windows CommonDialog1.Filter = 图片(*.bmp)|*.bmp|所有文件(*.*)|*.* Comm

20、onDialog1.FilterIndex = 17. 设置通用对话框的CancelError属性为True发生错误当通用对话框的CancelError属性设置为True时,无论何时选择“取消”按钮,均产生32755(cdlCancel)号错误。VB通过系统对象Err来记录程序运行期间所发生的错误。Err对象的Number属性记录错误号,Description属性保存有关错误的说明。例如,当在CancelError属性为True的通用对话框中选择“取消”按钮时,产生一个错误,Err.Number被设置为32755,Description属性被设置为“选择取消”。如果不对错误进行处理,VB将显示

21、出错消息并停止程序运行。为防止由于错误造成停止程序运行的问题,可以使用On Error语句捕获错误,然后根据捕获的错误进行处理。常用On Error语句的形式有:On Error Resume Next 忽略发生错误的命令行,执行下一句命令On Error GoTo 语句标号 当发生错误时转向执行标号所指定的命令行对于捕获到的错误号,可用分支语句处理。下面的程序说明当在颜色对话框内选取“取消”按钮时,CommonDialog1.ShowColor语句产生32755号错误。On Error语句在捕获到错误后,转向执行标号ErrorHandler所指定的命令行。在标签Label1上显示“放弃操作”

22、,并忽略产生错误的那一行命令与标号之间的所有语句。Private Sub Command1_Click() On Error GoTo ErrorHandler 错误捕获语句 CommonDialog1.CancelError = True 使选取“取消”按钮时能对出错做出响应 CommonDialog1.ShowColor Text1.ForeColor = CommonDialog1.Color 设置颜色 Exit Sub 无错误时正常退出本过程 以下为错误处理的语句ErrorHandler: If Err.Number = 32755 Then Label1.Caption = 放弃操作

23、End Sub8. 在使用CommonDialog控件控制字体选择时出现下图6-7所示错误这是由于没有设置CommonDialog控件的Flags属性,或属性值不正确。通常设置该值为&H103,表示屏幕字体、打印机字体两者皆有之,并在字体对话框中出现删除线、下划线、颜色等元素。注意数字前的符号&H,表示十六进制。图6-7字体提示框9. 窗体菜单名、顶层菜单与菜单项的区别通常出现在菜单栏上的菜单对象叫做菜单名,菜单名以下拉列表形式包含的内容为菜单项。菜单项可以包括菜单命令、分隔条和子菜单标题。当菜单名没有菜单项时称为“顶层菜单”,可直接对应一个应用程序。菜单名、顶层菜单与菜单项都是在菜单编辑器中

24、定义,它们的区别在于:(1)菜单名、顶层菜单不能定义快捷键,而菜单项可以有快捷键。(2)当菜单包含有热键字母(菜单标题中“&”后的字母)时,按Alt+热键字母可选择窗体顶部菜单栏中的菜单项,当子菜单打开时,按热键字母选择子菜单中的菜单项。如果子菜单没有打开时,按热键字母无法选择其中的菜单项。(3)尽管所有的菜单项都能响应Click事件,但是菜单栏中的菜单名通常不需要编写事件过程。10. 动态菜单创建后不显示创建动态菜单必须结合菜单项数组,样本菜单项的属性设置如下表所示:NameCaptionIndexVisible必需的可以没有0False表中Index为0,表示样本菜单项是数组的第一个元素,

25、其下标为0。样本菜单项的Name属性是必需的,它作为数组的名称。Visible可以设为True,如果设为False表示初始时该菜单项不可见。在程序中用Load语句创建菜单项,用Unload清除菜单项。动态创建的菜单项继承了除了Index之外的绝大部分属性,所以要对Caption属性设置菜单标题。另外,使用Load语句建立的菜单项对象的Visible属性为False,如果其Visible属性不设置为True,创建的菜单项不显示。另外,样本菜单项在菜单系统中的位置决定了新菜单项出现的位置。11. 在制作工具栏时ToolBar控件无法装入图像ToolBar控件装入的图像来自与它关联的ImageLis

26、t控件,必须先将图像添加到ImageList控件中,然后,在ToolBar控件的“图像列表”下拉式列表框中设置与之关联的ImageList控件,并为ToolBar控件中各工具按钮选择对应的图像/标。12. 在制作工具栏时无法对ImageList控件进行编辑若要对ImageList控件进行增加、删除图像,必须先在ToolBar控件的“图像列表”下拉式列表框设置“无”,也就是与ImageList控件切断联系,否则VB提示无法对ImageList控件进行编辑。13. 当改变子窗体的属性后不能自动显示该子窗体MDI窗体有AutoShowChildren属性,决定是否自动显示子窗体。如果它被设置为Tru

27、e,则当改变子窗体的属性后,会自动显示该子窗体;如果AutoShowChildren属性被设置为False,则改变子窗体的属性后,必须用Show方法把该子窗体显示出来。6.4 典型例题例6-1 编写一个简单的文本文件编辑器。要求具有打开、复制、粘贴、保存、退出功能。用户界面如下图6-8所示。单击“剪切”菜单(mnuCut),将文本框Text1.text中选定的内容剪切到剪贴板;单击“复制”菜单(mnuCopy),将文本框Text1.text中选定的内容复制到剪贴板;单击“粘贴”菜单(mnuPaste),将剪贴板中的内容粘贴到文本框中当前插入点处;单击“打开”菜单(mnuOpen),打开“打开”

28、对话框,输入要打开的文本文件名后,单击确定按钮后,文件在Text1中打开。单击“保存”菜单(mnuSave),打开“保存文件”对话框,Text1.text中的内容以指定的路径及文件名保存。单击“退出”菜单(mnuExit),结束程序。图6-8例6-1程序界面解答:(1)新建工程,修改窗体的标题为“简易文本编辑器”。(2)在窗体上右击鼠标,打开菜单编辑器,创建“剪切”、“复制”、“粘贴”、“打开”、“保存”、“退出”6个菜单。(3)在窗体上添加一个文本框,调整其大小如上图所示。(4)编写“剪切”菜单的单击事件过程,实现将文本框中的文本传送到剪帖板,并清除文本框内容。Private Sub mnu

29、Cut_Click() Clipboard.SetText Text1.SelText Text1.Text = End Sub(5)编写“复制”菜单的单击事件过程,实现将文本框中的文本传送到剪帖板。Private Sub mnuCopy_Click() Clipboard.SetText Text1.SelTextEnd Sub(6)编写“粘贴”菜单的单击事件过程,实现将剪帖板中的文本传送到文本框。Private Sub mnuPaste_Click() Text1.SelText = Clipboard.GetText()End Sub(7)编写“打开”菜单的单击事件过程,实现打开选择的文

30、本文件,并将所有内容读入文本框。Private Sub mnuOpen_Click() Dim s As String Text1.Text = CommonDialog1.Action = 1 Open CommonDialog1.FileName For Input As 2 Do While Not EOF(2) Input #2, s Text1.Text = Text1.Text + s Loop Close #2End Sub(8)编写“保存”菜单的单击事件过程,实现将文本框中所有内容写入选择的文本文件。 Private Sub mnuSave_Click() CommonDial

31、og1.Action = 2 Open CommonDialog1.FileName For Output As 1 Print #1, Text1.Text Close #1End Sub(9)编写“退出”菜单的单击事件过程,结束程序的运行。 Private Sub mnuExit_Click() EndEnd Sub6.5 练习与思考习题6-1 新建工程,在Form1窗体上建立一个二级下拉菜单(菜单项见下表)运行时的窗体如图6-9所示。请在“退出”菜单项中加入代码,使选择“退出”的时候能关闭程序。菜单标题菜单名称备注有效性文件File一级菜单有效打开Open二级菜单无效退出Exit二级菜单有效 图6-9习题6-1程序界面习题6-2 新建工程,在Form1窗体上放置一个列表框(初始值为空)和一个标签框,按下表建立菜单。窗体标题显示的文字参照下图6-10。菜单标题

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2