首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 认证考试-> ORACLE认证
visualbasic菜单在应用程序中的使用_visualbasic教程
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 

再论窗体

    除窗体设计原理以外,还需考虑应用程序的开始与结束。有一些技巧用于决定应用程序启动时的外观。熟悉应用程序卸载时进行的一些处理也很重要。

    设置启动窗体
    在缺省情况下,应用程序中的第一个窗体被指定为启动窗体。应用程序开始运行时,此窗体就被显示出来(因而最先执行的代码是该窗体的Form_Initialize事件中的代码)。如果想在应用程序启动时显示别的窗体,那么就得改变启动窗体。
    要改变启动窗体,请按照以下步骤执行:
    1.从“工程”菜单中,选取“工程属性”。
    2.选取“一般”。
    3.在“启动对象”ListBox中,选取要作为新启动窗体的窗体。
    4.选取“确定”。

    没有启动窗体时的启动
    有时候也许要应用程序启动时不加载任何窗体。例如:可能想先运行装入数据文件的代码,然后再根据数据文件的内容决定显示几个不同窗体中的哪一个。要做到这一点,可在标准模块中创建一个名为Main的子过程,如下面的例子所示。
    SubMain()
       DimintStatusAsInteger
       调用一个函数过程来检验用户状态。
       intStatus=GetUserStatus
       根据状态显示某个启动窗体。
       IfintStatus=1Then
         frmMain.Show
       Else
         frmPassword.Show
    EndIf
    这个过程必须是一个子过程,且不能在窗体模块内。欲将SubMain过程设为启动对象,可从“工程”菜单中,选取“工程属性”,再选“一般”,然后从“启动对象”框中选定“SubMain”。

    显示启动时的快速显示
    如果启动时有一个较长的执行过程,例如要从数据库中装入大量数据或者要装入一些大型位图,这时可能希望在启动时给出一个快速显示。快速显示是一种窗体,它通常显示的是诸如应用程序名,版权信息和一个简单的位图等内容。启动VisualBasic时所显示的屏幕就是一个快速显示。
    要显示快速显示,需用SubMain过程作为启动对象,并用Show方法显示该窗体:
    PrivateSubMain()
       显示快速显示。
       frmSplash.Show
       在此处添加启动过程。
         ...
       显示主窗体并卸载快速显示。
       frmMain.Show
       UnloadfrmSplash
    EndSub
    当一些启动例程正在执行时,快速显示能吸引用户的注意,造成应用程序装载很快的错觉。当这些启动例程完成以后,可以装入第一个窗体并使其快速显示卸载。
    对于快速显示的设计来说,尽量简单为好。如果使用大量位图或者大量控件,则快速显示本身装入将会变慢。

    结束应用程序
    当所有窗体都已关闭并且没有代码正在执行时,事件驱动的应用程序就停止运行。如果最后一个可见窗体关闭时仍有隐藏窗体存在,那么,应用程序表现为已经结束了(因为没有可见的窗体),可实际上应用程序仍在继续运行,直至所有隐藏窗体都关闭为止。之所以出现这种情况,是因为对已卸载窗体的属性或控件的任何访问,都将导致隐含地、不予显示地加载那个窗体。
    避免出现关闭应用程序时的这类问题,最好的办法是确保所有的窗体都已卸载。如果有一个以上窗体,可以使用Forms集合和Unload语句。例如,在主窗体上可以用一个名为cmdQuit的命令按钮退出程序。如果应用程序只有一个窗体,则Click事件过程可简单为:
    PrivateSubcmdQuit_Click()
       UnloadMe
    EndSub
    如果应用程序使用多窗体,通过把代码放入主窗体的Unload事件过程可以卸载这些窗体。可以使用Forms集合确保找到并关闭所有窗体。下列代码就是使用窗体集合来卸载所有窗体的:
    PrivateSubForm_Unload(CancelAsInteger)
       Dimiasinteger
       在窗体集合中循环并卸载每个窗体。
       Fori=Forms.Count-1to0Step-1
         UnloadForms(i)
       Next
    EndSub
    有一些情况需要不顾现存窗体或对象的状态而结束应用程序。为此,VisualBasic提供了End语句。
    End语句使应用程序立即结束:在End语句之后的代码不会执行,也不会再有事件发生。特别是,VisualBasic将不执行任何窗体的QueryUnload、Unload或Terminate事件过程。对象的各个引用将被释放,但如果定义有自己的类,VisualBasic将不执行由这些类所创建对象的Terminate事件。
    除End语句以外,Stop语句可以暂停一个应用程序。然而,Stop语句只能在调试时使用,因为它不释放对象的引用。
    详细信息关于Stop语句的信息,请参阅第十三章“调试代码和处理错误”中的“使用中断模式”,以及《语言参考》的“Stop语句”。关于窗体集合或者释放对象引用的信息,请参阅第九章“用对象编程”。

在应用程序中使用菜单

    许多简单的应用程序只由一个窗体和几个控件组成,但是通过增加菜单可以增强VisualBasic应用程序的功能。这一节将介绍如何在应用程序中创建菜单和使用菜单。

    用菜单编辑器创建菜单
    用菜单编辑器可以创建新的菜单和菜单栏、在已有的菜单上增加新命令、用自己的命令来替换已有的菜单命令以及修改和删除已有的菜单和菜单栏。
    要显示菜单编辑器,请:
     从“工具”菜单上,选取“菜单编辑器”。
     -或者-
     在“工具栏”上单击“菜单编辑器”按钮。这就会打开菜单编辑器,如图6.7所示。
    尽管大多数菜单控件属性可用菜单编辑器设置,所有的菜单属性在“属性”窗口中也都是可用的。菜单控件的两个最重要的属性是:
     Name——这是代码中用来引用菜单控件的名字。
     Caption——这是出现在控件上的文本。
    菜单编辑器中的其它属性,包括Index、Checked和NegotiatePosition,在本章稍后介绍。

    使用菜单编辑器中的列表框
    菜单控件列表框(位于菜单编辑器的下部)列出当前窗体的所有菜单控件。当在标题文本框中键入一个菜单项时,该项也会出现在菜单控件列表框中。从列表框中选取一个已存在的菜单控件可以编辑该控件的属性。
    例如,图6.7表明典型应用程序中“文件”菜单的各种菜单控件。菜单控件在菜单控件列表框中的位置决定了该控件是菜单标题、菜单项、子菜单标题还是子菜单项:
     位于列表框中左侧平齐的菜单控件作为菜单标题显示在菜单栏中。
     列表框中被缩进过的菜单控件,当单击其前导的菜单标题时才会在该菜单上显示。
     一个缩进过的菜单控件,如果后面还紧跟着再次缩进的一些菜单控件,它就成为一个子菜单的标题。在子菜单标题以下缩进的各个菜单控件,就成为该子菜单的菜单项。
     一个以连字符(-)作为它的Caption属性的菜单控件,作为一个分隔符条出现。分隔符条可把菜单项划分成若干个逻辑组。    注意如果菜单控件是一个菜单标题、带有子菜单项、被复选或无效、或者有一个快捷键,那么它就不能作为分隔符条。
    要在菜单编辑器中创建菜单控件,请按照以下步骤执行:
    1.选取该窗体
    2.从“工具”菜单中,选取“菜单编辑器”。-或者-在“工具栏”上单击“菜单编辑器”按钮。
    3.在“标题”文本框中,为第一个菜单标题键入希望在菜单栏上显示的文本。如果希望某一字符成为该菜单项的访问键,也可以在该字符前面加上一个(&)字符。在菜单中,这一字符会自动加上一条下划线。
菜单标题文本显示在菜单控件列表框中。
    4.在“名称”文本框中,键入将用来在代码中引用该菜单控件的名字。请参阅本章后面“菜单标题与命名准则”。
    5.单击向左或向右箭头按钮,可以改变该控件的缩进级。
    6.如果需要的话,还可以设置控件的其他属性。这一工作可以在菜单编辑器中做,也可以以后在“属性”窗口中做。
    7.选取“下一个”就可以再建一个菜单控件。-或者-单击“插入”可以在现有的控件之间增加一个菜单控件。也可以单击向上与向下的箭头按钮,在现有菜单控件之中移动控件。
    8.如果窗体所有的菜单控件都已创建,选取“确定”可关闭菜单编辑器。创建的菜单标题将显示在窗体上。在设计时,单击一个菜单标题可下拉其相应的菜单项。

    分隔菜单项
    分隔符条作为菜单项间的一个水平行显示在菜单上。在菜单项很多的菜单上,可以使用分隔符条将各项划分成一些逻辑组。例如VisualBasic的“帮助”菜单,使用分隔符条将其菜单项分成三组,如图6.8所示。
    要在菜单编辑器中创建分隔符条,请按照以下步骤执行:
    1.如果想在一现有菜单中增加一个分隔符条,选取“插入”,在想要分隔开来的菜单项之间插入一个菜单控件。
    2.如有必要,单击右箭头按钮使新菜单项缩进到与它要隔开的菜单项同级。
    3.在“标题”文本框中键入一个连字符(-)。
    4.设置“名称”属性。
    5.选取“确定”,关闭菜单编辑器。

    注意虽然分隔符条是当作菜单控件来创建的,它们却不能响应Click事件,而且也不能被选取。
    赋值访问键和快捷键
    通过定义访问键和快捷键可改进键盘对菜单命令的访问。
    访问键
    访问键允许按下ALT键并打入一个指定字符来打开一个菜单。一旦菜单打开,通过按下所赋值的字符(访问键)可选取控件。例如,按下ALT E键可打开“编辑”菜单,再按P键可选取“粘贴”菜单项。在菜单控件的标题中,一个指定的访问键表现为一个带下划线的字母,如图6.9所示。

    要在菜单编辑器中给菜单控件赋值访问键,请按照以下步骤执行:
    1.选取要赋值访问键的菜单项。
    2.在其“标题”框中,在要作为访问键字符的前面直接键入一个(&)字符。
    例如,如果图6.9所示的“编辑”菜单被打开,下列Caption属性设置值响应的对应键。

    注意菜单中不能使用重复的访问键。如果多个菜单项使用同一个访问键,则该键将不起作用。例如,如果C同时是“剪切”和“复制”的访问键,那么,当选取“编辑”菜单且键入C时,则“复制”命令将被选,但只有按下ENTER键以后,应用程序才会执行该命令。而“剪切”命令根本不会执行。

    快捷键
    快捷键按下时会立刻运行一个菜单项。可以为频繁使用的菜单项指定一个快捷键,它提供一种键盘单步的访问方法,而不是按住ALT键、再按菜单标题访问字符,然后再按菜单项访问字符的三步方法。快捷键的赋值包括功能键与控制键的组合,如CTRL F1键或CTRL A键。它们出现在菜单中相应菜单项的右边,如图6.10所示。

    要对菜单项赋值快捷键,请按照以下步骤执行:
    1.打开“菜单编辑器”。
    2.选取该菜单项。
    3.在“快捷键”组合框中选取功能键或者键的组合。
    要删除快捷键赋值,应选取列表顶部的“(none)”。
    注意快捷键将自动出现在菜单上;因此,不需要在菜单编辑器的“标题”框中键入CTRL key。

    菜单标题与命名准则
    为了与其它应用程序保持一致,创建菜单时遵循所确立的命名准则是一个好办法。

    设置Caption属性
    为菜单项进行标题赋值时,应当尽量遵循下列准则:
    1.菜单中项目名称应当唯一,但不同菜单中相似动作项目可以重名。
    2.项目名称可以是单词、复合词或者多个词。
    3.每一个项目名称都应当有一个用键盘选取命令的、一个唯一的记忆访问字符。访问字符应当是菜单标题的第一个字母,除非别的字符更易记;两个菜单标题不能用同一个访问字符。关于指定访问键与快捷键的详细信息,请参阅本章前面的“用菜单编辑器创建菜单”部分。
    4.如果命令在完成之前还需要附加信息,则在其名称后面应当有一个省略号(…),比如显示一个对话框的命令(“另存为…”,“首选项…”)。
    5.项目名称尽量简短。如果要使应用程序本地化,那么,在外文版中字词长度会增加将近百分之三十,这样也许没有足够空间列出各个菜单项。有关应用程序本地化的更详细内容,请参阅第十六章“国际发行”。

    菜单命名约定
    为了使代码更可读和更易维护,在菜单编辑器中设置Name属性时遵循已确定的命名约定是一个好办法。大多数命名约定规则都建议用前缀来标识对象(即,对菜单控件用mnu),其后紧跟顶层菜单的名称(如File)。对于子菜单,其后再紧跟该子菜单的标题(如mnuFileOpen)。
    详细信息有关所建议的命名约定的示例,请参阅附录B“VisualBasic编码约定”。有关所建议的命名约定的示例,请参阅“VisualBasic编码约定”。

->


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·一个特牛的日期时间判断正则表达式-ASP教程,正则表达式
·Remoting编程知识一-.NET教程,.NET Framework
·从客户端检测到有潜在危险的Request.Form 值-ASP教程,客户端相关
·关于DataRow和DataColumn的一点个人简单理解-.NET教程,数据库应用
·DataTable.Select使用小心得-.NET教程,数据库应用
·在Java中如何模拟多继承-JSP教程,Java技巧及代码
·上海移动数据网综合网管的实现
·在VC中用GDI+绘制角度可变的颜色渐变效果-.NET教程,VB.Net语言
·超漂亮的绿色按扭制做-网页设计,Photoshop
·Java获取Html变量的值-JSP教程,Java技巧及代码
最新文章
·阿里联盟:关于结算时间问题的统一说明_网赚技巧
·谷歌官方组织adsense优化大赛_网赚技巧
·google adsense 2007巡讲大会上海站总结_网赚技巧
·网络只是一个开始:专访91now站长小鱼头_站长访谈
·asp.net应用程序资源访问安全模型_asp.net技巧
·给那些迷惑于做垃圾站的站长们_站长心得
·免费——不是威客网站的杀手锏_站长心得
·圈圈浅谈个人网站发展和赚钱的模式-网站推广的口碑篇_站长心得
·说网解络之web2.0概念诠释(1)_站长心得
·google adsense系列技巧100条_google推广
相关主题
  • visual basic 6中发送邮件的新方法_邮件服务器
  • visual c#的excle编程_c#应用
  • visual c#创建和使用activex组件_c#应用
  • visuallisp的概念、功能和基本界面_autocad教程
  • visualbasic窗体背景花纹的实现_visualbasic教程
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭