版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十二章菜单和控件VB的设计环境菜单设计菜单为程序界面有机组成部分,它在程序界面上给用户提供一种方便的给命令分组的方法,用户使用菜单将较为容易访问这些命令。菜单的基本组成菜单标题菜单项访问魄快捷键菜单栏編记爭本剪切(T)Ctrl+X复制(QCtrl+C粘贴&Ctrl+V删除QjDel时间/且期)搜索&:选项逊1.I编辑菜单分隔条12-1:菜单界面的组成如图12-1所示:VB6.0的菜单为Window窗体的有机组成部分,菜单栏一般位于窗体的标题栏的下一行,包含一个或多个菜单标题。当单击一个菜单标题(如“工程”),相应菜单标题的菜单就被拉下来。菜单包含菜单项目的列表,菜单项包括命令(如“添加窗体”
2、和“添加模块”)、分隔条、和子菜单标题(带有向右箭头的菜单项标题)。在程序的窗体上,菜单项按功能分组组织以便于操作。例如,在图12-1中与工程有关的命令“添加窗体”,“添加用户控件”,和“添加模块”等都列入“工程”的菜单中。菜单项目可以执行三种不同的动作,有些菜单项直接执行动作,如图12-1中“工程”菜单中的“移除Forml”菜单项,将从工程中移除Forml窗体;一些后面带有(.)的菜单项弹出相应的对话框,要求用户提供执行动作所需信息。如“工程”菜单中选择“部件”时,出现“部件”选择的对话框;一些后面带有向右箭头的菜单项将下拉其子菜单,如“工程”菜单中“更多ActiveX设计器”下拉其子菜单。
3、菜单项中还包括访问键和快捷键,它允许使用键盘上的组合键快速启动菜单项功能。如在图12-1中“工程(P)”,可使用访问键“ALT+P”选中,选中“工程”菜单后,使用访问键“A”启动“添加文件”对话框,在未选中“工程”下拉菜单时,可用快捷键“CTRL+D”直接启动“添加文件”对话框。下拉菜单中包括分隔符“”,主要是为了分隔被细分的菜单项。菜单编辑器上节介绍了菜单的组成,VB6.0中提供了功能强大的菜单设计工具一菜单编辑器,可使我们方便地设计各种菜单。如图12-2所示:可以通过菜单、快捷按钮、鼠标右键以及快捷热键“CTRL-E”来启动菜单编辑器”。1、菜单编辑器菜单编辑器由标题栏、输入选择区、功能按
4、钮区以及菜单项列表框组成。标题栏:显示“菜单编辑器”,“X”按钮用于关闭菜单编辑器。输入选择区:用于输入和修改用户创建的菜单的名字、标题等属性,对菜单的属性进行选择或删除。菜单控件的两个最重要的属性是:标题这是出现在控件上的文本。名称这是代码中用来引用菜单控件的名字。功能按钮区:用于调整各菜单项的前后顺序、包含层次等关系,建立、删除或插入某个菜单项。菜单项列表框:将已经建立完成的各项菜单项以列表的形式列出,并通过某些符号表明各项之间的层次关系。如图12-2和图12-3所示:菜单项列表框列出当前窗体的所有菜单控件。当在输入选择区中标题文本框中键入一个菜单项时,该项出现在菜单控件列表框中。从列表框
5、中选取一个已存在的菜单控件可以编辑该控件的属性。例如,图12-3中示出记事本应用程序中“文件”菜单的各种菜单项。菜单项在菜单项列表框中的位置决定了该控件是菜单标题、菜单项、子菜单标题,还是子菜单项:位于列表框中左侧平齐的菜单项作为菜单标题显示在菜单栏中。列表框中被缩进的菜单项,当单击其前级菜单标题时才会在该菜单上显示。一个缩进过的菜单项,如果后面还紧跟着再次缩进的一些菜单项,它就成为一个子菜单的标题。在子菜单标题以下缩进的各个菜单项,就成为该子菜单的菜单项。一个以连字符(-)作为它的标题属性的菜单项,作为一个分隔符条出现。但是,若菜单项是一个菜单标题、带有子菜单项、被复选或无效、或者有一个快捷
6、键,那么它就不能作为分隔符条。2、建立菜单项用菜单编辑器可以创建、修改和删除菜单和菜单栏。在菜单编辑器中创建菜单,请按照以下步骤执行:选取该窗体启动“菜单编辑器”在“标题”文本框中,键入第一个菜单标题,通过(&字符)设定菜单项的访问键,在菜单中,这一字符会自动加上一条下划线;菜单标题文本显示在菜单项列表框中。在“名称”文本框中,键入将用来在代码中引用该菜单控件的名字。单击向左或向右箭头按钮,改变该菜单控件的缩进级。设置菜单控件的其他属性,可以在菜单编辑器中做,也可以在“属性”窗口中做。选取“下一个”就可再建一个菜单控件。或者,单击“插入”可在现有的控件之间增加一个菜单控件。也可以单击向上与向下
7、的箭头按钮,在现有菜单控件之中移动控件。如果窗体所有的菜单控件都已创建,选取“确定”可关闭菜单编辑器。创建的菜单标题将显示在窗体上。拉其相应的菜单项。在设计时,单击一个菜单标题可下3、分隔菜单项分隔符条作为菜单项间的一个水平行显示在菜单上。在菜单项很多的菜单上,可以使用分隔符条将各项划分成一些逻辑组。例如VB的“帮助”|帮曲1MicrosoftWord帮助址倉目录和索引电)第?谨是什爼?(T)ShiftiFlMicrosoftontheWeb(jV)关于MicrosoftWord图12-4:VB帮助分隔菜单,使用分隔符条将其菜单项分成三组,如图12-4所示。要在菜单编辑器中创建分隔符条,请按照
8、以下步骤执行:在已有的菜单中选取“插入”,在想要分隔开来的菜单项之间插入一个菜单控件。新菜单项缩进到与它要隔开的菜单项同级。在“标题”文本框中键入一个连字符(-)。设置“名称”属性。选取“确定”,关闭菜单编辑器。注意:虽然分隔符条是当作菜单控件来创建的,它们却不能响应Click事件,而且也不能被选取。4、设定访问键和快捷键通过定义访问键和快捷键可改进键盘对菜单命令的访问。访问键:访问键允许按下ALT键并打入一个指定字符来打开一个菜单。一旦菜单打开,通过按下所赋值的字符(访问键)可选取控件。在菜单控件的标题中,一个指定的访问键表现为一个带下划线的字母,如图12-4所示。要在菜单编辑器中给菜单控件
9、赋值访问键,请按照以下步骤执行:选取要赋值访问键的菜单项。在其“标题”框中,在要作为访问键字符的前面直接键入一个(&)字符。例如,如果图12-2所示的“编辑”菜单中的“剪切”菜单项,其标题输入的是:剪切(&T)。注意:菜单中不能使用重复的访问键。或者该键将不起作用。快捷键快捷键按下时会立刻运行一个菜单项,可以为频繁使用的菜单项指定一个快捷键。快捷键的赋值包括功能键与控制键的组合,如图12-5中的CTRL+Z键或CTRL+Y键。它们出现在菜单中相应菜单项的右边。对菜单项设置快捷键,按照以下步骤执行:打开“菜单编辑器”。选取该菜单项。在“快捷键”组合框中选取功能键或者键的组合。要删除快捷键赋值,应
10、选取列表顶部的(none)。注意:快捷键将自动出现在菜单上;因此,不需要在菜单编辑器的“标题”框中键入。5、菜单控件其他重要属性菜单控件其他重要属性如:“有效”、“复选”和“可见”选项在实际应用中是相当普遍的。“有效”选项用于决定菜单项是否有效,其中的控制命令能否执行。该项选中,菜单项有效,否则菜单项无效,此时菜单项为灰色。此属性也可在程序中通过菜单控件的Enable设置为False控制。如图12-5所示的“”菜单项的查看电圍象a)颜色()扌工具箱(Tj-Ctrll-T颜料盒也卜Ctrl+L状态栏“剪切”、“复制”。“复选”选项用于决定菜单项是否有复选标记。该项选中,则菜单项有复选标记,否则没
11、有复选标记。这也可在程序中通过设置菜单控件的Checked属性为True来实现。如图12-6所缩放辺全圈Etfl+F12-6:菜单复选项示,“工具箱”菜单项为复选。“可见”选项决定菜单项是出现还是隐藏。若选中,则菜单是出现状态;否则为“隐藏”状态。可在代码中通过设置控件的Visible属性来设置。注意:菜单项中所有的子菜单项应至少有一个是可见的,不能设为全部“隐藏”。12.1.3编写菜单命令当用户选取一个菜单项时,该菜单控件的Click事件出现。需要在该事件代码中为每个菜单控件编写一个Click事件过程。除分隔符条以外的所有菜单控件(以及无效的或不可见的菜单控件)都能识别Click事件。在菜单
12、事件过程中编写的代码与在控件任何其它事件过程中编写的代码完全相同。冠ex:iiTiple文件F|新逹(2)打开减保存&.另存为1图1AT:例题菜単.例12.1:设计如图12-7程序界面中的文件菜单,并编写相应的命令。按照上述介绍的步骤,首先设置一个标题为example的窗体,然后启动菜单编辑器进行“文件”菜单的设计。菜单设计如图12-8所示,其中在菜单编辑器中输入和选择如表12-1所示:打开”和“退出”菜单项代码设计分别如下:SubmnuFileOpen_Click()DimstrOpenFileNameAsStringfrmSDI.CMDialog1.Filename=frmSDI.CMDi
13、alog1.ShowOpenIfErr32755Then选择Cancel.strOpenFileName=frmSDI.CMDialog1.Filename如果文件大于65K,则它不能被打开,取消此操作IfFileLen(strOpenFileName)65000ThenMsgBox文件太大不能被打开。ExitSubEndIfEndIfEndSubSubmnuFileClose_Click()UnloadMeEndSub表12-1:例题菜单设计的一些输入和选择标题名称有效可见文件(&F)MnuFileVV新建(&N)MnuFileNewVV打开(&0)MnuFileOpenVV存为(&S)Mn
14、uFileSaveVV另存为(&A)MnuFileSaveAsVVMnuFSepIVV退出(&X)MnuFileExitVV粘贴(1)一旦菜单标题被选取,VisualBasic将自动地显示出一个菜单;但是,没有必要为一个菜单标题的Click事件过程编写代码,除非想执行其它操作,比如每次显示菜单时使某些菜单项无效。注意:在设计时,当关闭菜单编辑器时,所创建的菜单将显示在窗体上。在窗体上选取一个菜单项将显示那个菜单控件的Click事件过程。12.1.4弹出菜单全选(A)复制到(QJ,.粘贴自翻转/旋转拉伸f扭曲反色a)图1A9:弹出菜单VB6.0中在菜单编辑器中设计的菜单是下拉式菜单。弹出式菜单是
15、显示于窗体之上,独立于菜单栏的浮动式菜单,如图12-7所示。弹出式菜单位置取决于鼠标右键按下时指针的位置,因此,弹出式菜单又称为上下文菜单。在某些情况下,弹出式菜单会使系统功能的实现更加简洁和高效,系统的使用更加得心应手。Widnows应用程序的弹出式菜单一般是当用户在程序的窗体上点按鼠标键时出现的。弹出式菜单多用于实现系统的附加或增强功能。弹出式菜单的内容,可以随点按鼠标键的位置不同而变化。由于弹出的菜单要覆盖屏幕的一部分,所以应尽量缩短菜单里的文字。在VB6.0中,弹出式菜单的实现要用到下拉式菜单设计的技术和PopupMenu方法。具体的做法是:在菜单编辑器中设计好相应窗体的弹出式菜单。要
16、注意的是,要弹出的菜单必须至少有一个子菜单;因而这个菜单不能有快捷键,并且菜单控件的Checked属性必须是False。再把弹出式菜单的Visible属性改为False。可以将至少有一个菜单项的菜单,在运行时作为弹出式菜单予以显示。使用PopupMenu方法可显示弹出式菜单。object.PopupMenumenuname,flags,x,y,boldcommandObject:调用弹出式菜单的对象名。Menuname:设置为弹出式菜单的菜单名。Flags参数:在PopupMenu方法中使用flags参数可以进一步定义弹出式菜单的位置与性能。见下表12-2表12-2:Flags参数表位置参数V
17、bPopupMenuLeftAlign(缺省)于x位置定义了该弹出式菜单左边界VbPopupMenuCenterAlign弹出式菜单以x位置为中心VbPopupMenuRightAlign于X位置定义了该弹出式菜单右边界性能参数VbPopupMenuLeftButton(缺省)鼠标左键单击触发菜单项时VbPopupMenuRightButton鼠标右键或者左键单击触发菜单项Boldcommand参数:boldcommand参数指定在显示的弹出式菜单中是否以粗体字体显示菜单控件名称。弹出式菜单中只能有一个菜单控件被加粗。例12.2:当用户用鼠标右键单击一个窗体时,以下的代码将例12.1中的“文件
18、”菜单mnuFile设置为弹出式菜单。用MouseUp或者MouseDown事件来检测何时单击了鼠标右键,标准用法是使用MouseUp事件:PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAs_Integer,XAsSingle,YAsSingle)IfButton=2Then检查是否单击了鼠标右键。PopupMenumnuFile把文件菜单显示为弹出式菜单。EndIfEndSub直到菜单中被选取一项或者取消这个菜单时,调用PopupMenu方法后面的代码才会运行。注意:每次只能显示一个弹出式菜单。在已显示一个弹出式菜单的情况下,对后面的调用PopupM
19、enu方法将不予理睬。在一个菜单控件正活动的任何时刻,调用PopupMenu方法均不会被理睬。若选用多组参数,可用Or操作符将它们连起来。例12.3:当用户单击一个命令按钮时,弹出边框在窗体中心的弹出式“文件”菜单。该菜单触发受到鼠标右键或左键单击的菜单项的Click事件。PrivateSubCommand1_Click()X变量和Y变量的尺寸。Dimx,y设置X变量和Y变量到窗体中心。x=ScaleWidth/2y=ScaleHeight/2显示弹出式菜单。PopupMenumnuFile,vbPopupMenuCenterAlignOrvbPopupMenuRightButton,x,yE
20、ndSub常用控件在VB6.0中,控件是非常重要的部件,在窗体上使用控件实现应用的各种功能,并能提高应用程序的开发效率。控件是以图标的形式存放于集成开发环境中的工具箱中(如图12-10所示),大致可分为三类:内容控件、ActiveX控件以及可插入对象。但在应用VB6.0开发应用程序系统时,使用频率最高的控件是VB6.0的内部控件,在此节中我们将详细介绍这些控件,如:按钮、标签、文本框、选择按钮、列表框、下拉列表框、滚动条、时钟以及命令对话框。12.2.1命令按钮(CommandButton)命令按钮在外表上看起来就是一个按钮,用于开始、中断或者结束一个进程,当命令按钮被选取时显示按下的形状。1
21、、命令按钮属性与字体有关的常用属性FontName显示文本所用的字体FontBold加粗显示所用的字体Fontltalic倾斜显示所用的字体Fontsize显示所用的字体大小Fontunderline下划显示所用的字体与位置有关的常用属性Height设置所选对象的高度Width设置所选对象的宽度Left对象左边缘与容器左边缘的距离Top对象顶端与容器顶端的距离与外观有关的常用属性Appearance对象在运行时是否以3D效果显示Caption对像标题栏中或图像下面的文本BackColor对象中文本或图像的背景色与行为有关的常用属性Cancel允许用按ESC键取代单击此按钮的功能Default允
22、许用按ENTER键取代单击此按钮的功能Enabled用于设置命令按钮的有效性Visible设置命令按钮的可显示性其它无归类的常用属性Index控件对象在控件数组中的标识号MousePoint鼠标移到对象特定部分时显示的鼠标指针类型Tag用来存储程序中需要的额外数据说明:Cancel属性:此属性设置为True时,可用按ESC键代表单击鼠标按钮;设置为False时,禁止任意键代表单击此按钮的功能。默认为False状态。VB6.0中,一个窗体只允许有一个命令按钮的Cancel属性被设置为True的状态。Default属性:此属性设置为True时,可以用按ENTER键代表单击鼠标按钮;设置为False
23、时,禁止任意键代表单击此按钮的功能。默认为False状态。在VB6.0中,一个窗体只允许有一个命令按钮的Default属性被设置为True的状态。Enabled属性:设置命令按钮的有效性,在需要暂时使命令按钮失去作用时使用,以防止发生误操作。设置为True,则命令按钮有效;设置为False,则命令按钮无效。Visible属性:设置命令按钮的可显示性,在需要暂时使命令按钮消失时使用,以避免误操作。设置为True,则按钮显示;设置为False,则命令按钮消失。此属性与Enabled属性结合使用,控制命令按钮的操作。字体有关属性:设置与字体有关的属性,除上述介绍的属性外,还可通过Font对象属性设置
24、,双击属性窗口中的Font属性,这时系统返回字体对象即字体对话框,在进行设置或选择。若需在程序中设置则如下:Command1.Font.Bold=True例12.4:设计一个求和界面,当输入数据后,求和命令按钮有效。2、命令按钮事件命令按钮事件命令按钮能够接受的常用事件为:Click,MouseDown,MouseUp,MouseMove,KeyPress,KeyUp和KeyDown等鼠标键盘事件。注意:命令按钮不能接受DblClick事件。常用命令按钮事件Click单击鼠标左键时发生MouseDown当按下鼠标按钮时发生MouseUp当释放鼠标按钮时发生MouseMove当移动鼠标时发生Ke
25、yPress当用户按下和松开一个键时发生KeyUp当一个对象具有焦点时松开一个键时发生KeyDown当一个对象具有焦点时按下一个键时发生3、命令按钮方法命令按钮的常用方法有:Drag、Move、Refresh、Setfocus、Zorder。常用命令按钮方法Drag用于控件的开始、结束或取消拖动操作Move用以移动表单或控件Refresh强制全部重绘一个窗体或控件Setfocus将焦点移至指定的控件或窗体Zorder将表单或控件放直在z-顺序的前端或后端例12.5:设计例12.4中的事件过程程序。PrivateSubCommand1_Click()Label2.Caption=CStr(CLn
26、g(Text1.Text)+CLng(Text2.Text)EndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then是否为ENTER键KeyAscii=0IfText1.TextAndText2.TextThenCommand1.Enabled=TrueEndIfSendKeysTabEndIfEndSubPrivateSubText2_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenKeyAscii
27、=0IfText1.TextAndText2.TextThenCommand1.Enabled=TrueEndIfSendKeysTabEndIfEndSub12-2-2标签及文本框标签用于显示用户不能直接改变的文本,常与无Caption属性的控件配合使用,如文本框。文本框用于显示用户输入的、或运行时在代码中赋予控件的信息,有时也称作编辑控件。1、标签属性基本上某些常用属性与在命令按钮的常用属性一样,需要加以介绍的有如下几个属性:ForeColor设置控件的文字或图像的前景颜色AutoSize决定控件是否自动改变大小以显示其全部内容Alignment决定控件中文本的对齐方式WordWrap扩展
28、标签大小的调整方式,与AutoSize配合2、标签事件与方法标签响应鼠标事件,支持鼠标双击DblClick事件的响应,但不响应键盘事件;支持的常用方法与命令按钮大致。3、文本框属性文本框除了如上所述的大部分常用属性外,还有如下的常用属性:Text、PassWordChar、Locked、MaxLength、MutiLine、ScrollBars,但文本框无Caption属性,常与标签配合使用。Text设置或返回编辑域中的文本PassWordChar用于将任何输入字符以输入的特定字符代替Locked设定文本框是否可编辑MaxLength限定文本框中可输入文本的长度MutiLine设置单彳丁或多彳
29、丁文本ScrollBars多行文本时,设置加入滚动条注意:PassWordChar属性在MutiLine二False时使用,而ScrollBars在MutiLine=True时使用。4、文本框事件与方法文本框支持鼠标、键盘事件以及常见的方法。例12.6:标签AutoSize、WordWrap属性和文本框的MutiLine属性在标签中显示“白日依山尽黄河入海流欲穷千里目更上一层楼”,标签的长度仅能容纳“白日依山尽黄河入海流”,本例如图12-13所示,说明在AutoSize=True时,WordWrap=false标签长度水平扩展,=false时垂直扩展。同样在文本框中,若文本框的属性MutiLi
30、ne=false时,文本框仅在第一行显示“白日依山尽黄河入海流”,在MutiLine=true时文本框启动多行显示。如图12-14所示:例12.7:注册界面,当用户进入应用程序时,一般需要输入用户名和密码进行注册。此程序需用到文本框的PassWordChar属性。在注册界面中,输入密码的文本框Text2的PassWordChar属性域输入”,所以在其中输入密码时,代之显示“*”。该程序简易代码如下:OptionExplicitPrivateSubCommand1_Click()IfText1.TextAndText2.TextThenIfText1.TexthhhOrText2.Text123
31、456ThenForm1.Caption=用户名/密码不对!请重输Text1.SetFocusElseUnloadMeEndIfElseForm1.Caption=用户名/密码未输全!请重输IfText1.Text=ThenText1.SetFocusElseText2.SetFocusEndIfEndIfEndSubPrivateSubCommand2_Click()UnloadMeEndSub12-2-3选择按钮用于显示选项,用户只能在一系列选项中选择一个。1、选择按钮属性重要属性如表所示,其他属性同前所述。Caption按钮标题,在标题中允许访问快捷键:Alt+字母Alignment决定
32、按钮的选择体放置在标题的左边(0)或右边(1)Value决定是否选中了该选项(True),系统缺省(False)2、选择按钮事件和方法常用的事件为Click事件,选择选项按钮即可激活其Click事件;其他事件和方法前于讲述。选择按钮在具体的使用中需注意如下事项。、一般将多个选项按钮放置在框架中组成选项组使用。用框架的标题对选项组加以简单说明。、选项按钮的Value属性的默认值为False,但在运行时,必须有一个选项按钮被选中。一般设第一个选项按钮为默认选中的选项按钮。例12.8:选择界面,利用选择按钮进行字体选择,因为选择按钮为单选则将四项选择分为两组,选出两种选择作用于显示字体。如图12-1
33、6所示:默认值为“粗体”和“斜体”。程序代码:PrivateSubForm_Load()设置默认为粗、斜体Option1.Value=TrueOption3.Value=TrueLabel1.Font.Bold=TrueLabel1.Font.Italic=TrueEndSubPrivateSubOption1_Click()置字体为粗体Label1.Font.Bold=TrueEndSubPrivateSubOption2_Click()置字体为细体Label1.Font.Bold=FalseEndSubPrivateSubOption3_Click()置字体为斜体Label1.Font.I
34、talic=TrueEndSubPrivateSubOption4_Click()置字体为正体Label1.Font.Italic=FalseEndSub12-2-4列表框和下拉列表框列表框显示项目列表,从其中可以选择一项或多项。若项目总数超过了可显示的项目数,自动添加滚动条。1、列表框属性列表框包含公共的常用属性,如前所述;列表框几个重要的属性如表所示:Columns决定框中选项在一列中垂直滚动(默认:0),还是在多列中水平滚动(0)Multiselect决定允许多项选择,为0(默认):单项选择,为1:简单多项选择(单击、空格选择),为2:复杂多项选择(SHIFT或CTRL+单击选择)Lis
35、t用于访问或改变某选项值的数组,维数:ListCountListcount列表框中选项的总个数Listlndex返回当前选中选项在List数组的下标值Text显示当前选中的选项的内容Sorted设置选项是否按升序或大小序排列2、列表框事件和方法列表框能使用常用的鼠标、键盘事件,并支持如下三种方法:AddItem向列表框添加选项,对象.AddItem内容,索引值RemoveItem从列表框删除选项,对象.RemoveItem索引值Clear清除全部选项,对象.Clear例12.9:列表框常用属性和方法举例,设计一个程序,输入选项并添加到列表框中,显示在列表框中所选中的选项,提供删除指定选项功能。
36、4因诸输入:Ji岳”列表框删除选项退出I宝中的选项为:宝中的选项为:qqqqqq图12-17:列表框厘性方法举例程序界面如图12-17所示,代码如下:PrivateSubCommand1_Click()List1.AddItemText1.TextEndSubPrivateSubCommand2_Click()IfList1.ListIndex=-1ThenLabel1.Caption=没有选中或无选项!ElseList1.RemoveItemList1.ListIndexEndIfEndSubPrivateSubList1_Click()Label1.Caption=List1.TextEn
37、dSubPrivateSubText1_Change()IfText1.Text=ThenCommand1.Enabled=FalseElseCommand1.Enabled=TrueEndIfEndSub12-2-5滚动条为不具备滚动条的控件提供滚动功能。一般有水平和垂直两种滚动条,具体的结构和使用方法相同。以下以水平滚动条为例讲解滚动条。滚动条的结构为:两端各有一个滚动箭头,两个滚动箭头中间是滚动条部分,在滚动条上有一个能够移动的小方块,叫做滚动框。1、滚动条属性滚动条包含女口前所述的常用属性,滚动条几个重要的属性如表所示:Value表示滚动框的当前位置的值,改变值可改变滚动框的位置。默认
38、值为0滚动框总是位于最左端。Min滚动框移动到最小位置数值。系统设置此数为0滚动框在滚动条的最左端时,Value值为0。Max滚动框移动到最大位置数值。系统设此数为32767,滚动框在最右端时,Value值为32767。Value属性的数值变化范围为032767。SmallChange单击滚动条两端的箭头时,滚动框移动的数值,默认值为1,可以修改。LargeChange单击滚动条上的滚动框时,滚动框移动的数值。默认值为1,可以修改2、滚动条属性和方法滚动条可使用常用的方法和键盘事件,但不能使用鼠标事件,其他的滚动条的重要事件如表所示:Scroll在滚动框移动时被激活Change在滚动框移动后或
39、通过代码改变Value值被激活例12.10:注意滚动条两个重要的事件Scroll、Change的区别,此列中若发生Change事件则用蓝色显示Value值,若发生Scroll事件则用红色显示Value值。执行程序:按住箭头或滚动条,触发Change事件,显示蓝字;拖动滚动框不释放,则触发Scroll事件,显示红字。程序清单:OptionExplicitPrivateSubForm_Load()HScroll1.Min=0HScroll1.Max=1000HScroll1.LargeChange=100HScroll1.SmallChange=1EndSubPrivateSubHScroll1_
40、Change()Label1.ForeColor=&HFF0000显示蓝色Label1.Caption=Format(HScroll1.Value)EndSubPrivateSubHScroll1_Scroll()显示红色Label1.ForeColor=&HFF&Label1.Caption=Format(HScroll1.Value)EndSub12-2-6计时器控件通过定时引发的Timer事件,Timer控件可以有规律地隔一段时间执行一次代码。注意:。因为计时器在一秒钟内最多产生18个事件,所以两个事件之间的时间间隔精确度不超过1/18秒。1、计时器属性计时器属性较少,只有Name、En
41、abled、Index、Interval、Left、Tag和Top几个属性。其中Interval属性:用于设置两个计时器事件之间的时间间隔。以毫秒为单位,范围是065535毫秒,系统初始值设置为0。2、计时器事件计时器可以响应计时器事件,即Timer事件。12-2-7CommandDialog控件CommonDialog控件提供一组标准的操作对话框,打开和保存文件、设置打印选项、及选择颜色和字体等操作。在程序中使用CommonDialog控件,将其添加到窗体并设置属性。所显示的对话框由控件的方法确定。下面介绍CommonDialog控件属性和方法。1、CommonDialog属性除了常用的属性
42、外,CommonDialog自有的一些重要的属性如表所示:Filter在对话框的类型列表框中所显示的过滤器,object.Filter=descriptionlfilter1|description2filter2.,例如:Text(*.txt)|*.txtFilterIndex“打开”或“另存为”对话框中一个缺省的过滤器InitDir用于指定初始的目录,如果此属性未指定,则使用当前目录CancerError设置当选取“取消”按钮时是否出错2、CommonDialog方法如表所示:方法所显示的对话框ShowOpen显示“打开”对话框ShowSave显示“另存为”对话框ShowColor显示“颜
43、色”对话框ShowFont显示“字体”对话框ShowPrinter显示“打印”或“打印选项”对话框ShowHelp调用Windows帮助引擎例12.11:设计使用CommonDialog控件提供的对话框的程序。由于CommonDialog控件不是VB6.0固有的控件,要使用常用对话框控件必须装入控件。通过“工程”菜单找到“部件”菜单项打开部件对话框,找到MicrosoftCommonDialogControl6.0,进行复选返回。这时就可在工具箱看见CommonDialog控件的图标。程序界面上命令按钮Command1-Command4分别对应“打开”、“另存为”、“颜色”和“字体”按钮;设置
44、标签label1用以显示所选中的文件名、色彩和字体;CommonDialog控件的CancerError设为False。其他的在程序中设置。程序清单:PrivateSubCommand1_Click()CDlg.Filter=Text|*.txtCDlg.ShowOpenLabel1.Caption=CDlg.FileNameEndSubPrivateSubCommand2_Click()CDlg.Filter=Text|*.txtCDlg.ShowSaveLabel1.Caption=CDlg.FileNameEndSubPrivateSubCommand3_Click()CDlg.Font
45、Bold=Label1.FontBoldCDlg.FontItalic=Label1.FontItalicCDlg.FontName=Label1.FontNameCDlg.FontSize=Label1.FontSizeCDlg.Flags=cdlCFScreenFontsCDlg.ShowFontLabel1.FontBold=CDlg.FontBoldLabel1.FontItalic=CDlg.FontItalicLabel1.FontName=CDlg.FontNameLabel1.FontSize=CDlg.FontSizeEndSubPrivateSubCommand4_Clic
46、k()CDlg.Color=Label1.ForeColorCDlg.ShowColorLabel1.ForeColor=CDlg.ColorEndSubPrivateSubCommand5_Click()UnloadMeEndSub第十三章多文档界面(MDI)13.1界面样式Windows的应用程序界面样式主要有两种:单文档界面(SDI)和多文档界面(MDI)。单文档界面(SDI)的应用只允许在一个实例中打开和处理单个文档,如:Windows中的WordPad(记事本)应用程序;而多文档界面(MDI)应用则允许在单个实例中打开多个文档窗体,象表格程序Excel。13-2MDI窗体的创建多文档
47、界面(MDI)应用程序允许用户同时显示多个文档,每个文档显示在自己的窗口中。文档或子窗口被包含在父窗口中,父窗口为应用程序中所有的子窗口提供工作空间。例如:MicrosoftExcel允许创建并显示不同样式的多文档窗口。每个子窗口都被限制在Excel父窗口的区域之内。当最小化Excel时,所有的文档窗口也被最小化,只有父窗口的图标显示在任务栏中。创建MDI应用程序步骤:工程1CT程1)Forml(Form1)Form2(Form2)图13-1:MD:工程I程-工程iIB1=1|QMDIForml(MEIFormO子窗体就是其MDIChild属性设置为True的普通窗体。一个应用程序可以包含许多
48、相似或者不同样式的MDI子窗体。1、创建MDI窗体,从“工程”菜单中选取“添加MDI窗体”。见图13-1中MDIForm1窗体就是MDI窗体。注意:一个应用程序只能有一个MDI窗体。2、创建应用程序的子窗体,创建一个MDI子窗体就是将创建的普通新窗体(或者打开一个存在的窗体)的MDIChild属性设为True。见图13-1中窗体Forml和Form2就是MDI之窗体。这两个窗体的属性:MDIChild设置True。例13.1:MDI简易文本编辑器。提供文本文档的新建等功能,加入“窗口”菜单,包括窗体排列等菜单项,提供文档的编辑弹出菜单等。设计步骤:1、构造窗体:在VB中,按步骤创建一个MDI窗
49、体(MDIForm1)和一个标准窗体(Forml)。创建“文件”菜单。2、本程序中,所有的MDI子窗体都为简易编辑器;因此将Forml窗体创建一个文本框(Textl),创建“文件”和“窗口”菜单。并将窗体的MDIChild属性置True。3、MDI子窗体的编程:新建子窗体时,创建MDI子窗体的实例,关闭应用或MDI子窗体时,检测内容是否变动以便存入。图13-2MDI简易文本编辑器程序清单:1、MDI简易文本编辑器应用程序示例主窗体应用程序首先启动MDI主窗体的Load事件;在这事件过程中,设定工作目录,启动和初始化MDI子窗体。代码中使用MDI子窗体对象的动态数组来加载MDI子窗体,见模块定义
50、:Document()AsNewfrmNotePad;初始化时设置MDI子窗体的状态,FState(1).Dirty=False,此数组在模块定义如下:TypeFormStateDeletedAsIntegerDirtyAsIntegerEndTypePublicFState()AsFormState这数组变量中Deleted标记编辑器中文本是否被删除,Dirty标记子窗体的文本编辑器文本是否被改动。PrivateSubMDIForm_Load()ShowChDirApp.PathReDimDocument(1)ReDimFState(1)Document(1).Tag=1FState(1).Dirty=FalseDocument(1).Caption=无标题:1Document(1).ShowEndSub2、“文件”菜单“新建”菜单项的编程菜单中“新建”Click事件过程将建立一个新的MDI子窗体,与Load过程一样,进行初始化和显示。与Load过程不一样的是,在Load过程中启动Document()数组的首元素,在应用系统应用时,伴随MDI子窗体的创建和删除,Document()数组中可能存在空元素,因此,在新建的Click过程中要首先检测有无空元素,产生索引号,这由模块中函数FindFreeIndex()完成,然
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 入职安全生产培训
- 加油站承包商安全培训
- 市妇幼保健院1-7月份医保DRG付费数据分析报告
- IT行业晋升述职报告
- 保护我的牙齿活动教案
- 数学学案:课堂导学函数第课时映射与函数
- 奶粉活动总结
- 如何减少手术感染
- 西药学综合知识与技能题库及答案(1601-1800题)
- 七夕活动结束工作
- 办公楼物业服务管理的培训
- JTG∕T F30-2014 公路水泥混凝土路面施工技术细则
- 帆船知识课件
- 企业宣传片项目进度计划
- 2023-2024学年统部编版九年级道德与法治下册全册知识点总结讲义
- 奇瑞QQ冰淇淋说明书
- 糖尿病性舞蹈病
- EPC项目承包人施工方投资估算与设计方案匹配分析
- 听数学故事探秘负数起源
- 《第八课 我的身体》参考课件
- 慢性伤口评估及护理
评论
0/150
提交评论