电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 操作系统-> 注册表教程
visualbasic控件结构概述_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 

    循环结构
    循环结构允许重复执行一行或数行代码。VisualBasic支持的循环结构有:
    1.Do...Loop
    2.For...Next
    3.ForEach...Next

    Do...Loop
    用Do循环重复执行一语句块,且重复次数不定。Do...Loop语句有几种演变形式,但每种都计算数值条件以决定是否继续执行。如同If...Thencondition必须是一个数值或者值为True(非零)或False(零)的表达式。在下面的Do...Loop循环中,只要condition为True就执行statements。
    DoWhilecondition
       statements

    Loop
    当VisualBasic执行这个Do循环时会首先测试condition。如果condition为False(零),则跳过所有语句。如果condition为True(非零),则VisualBasic执行语句,然后退回到DoWhile语句再测试条件。
    因此,只要condition为True或非零,循环可以随意执行多少次。如果condition一开始便为False,则不会执行语句。例如,以下过程将计算某一目标字符串在另一字符串中出现的次数,只要发现目标串就执行循环:
    FunctionCountStrings(longstring,target)
        Dimposition,count
        position=1
        DoWhileInStr(position,longstring,target)
           position=InStr(position,longstring,target)_
             1
            count=count 1
        Loop
        CountStrings=count
    EndFunction
    如果目标字符串未出现在另一个字符串中,则InStr返回0,而且不再执行循环。
    Do...Loop语句的另一种演变形式是先执行语句,然后在每次执行后测试condition。这种形式保证statements至少执行一次:
    Do
       statements
    LoopWhilecondition
    其它两种演变形式类似于前两个,所不同的是,只要condition为False而不是True,它们就执行循环。

    For...Next000
    在不知道循环内需要执行多少次语句时,宜用Do循环。但是,在知道要执行多少次时,则最好使用For...Next循环。与Do循环不同,For循环使用一个叫做计数器的变量,每重复一次循环之后,计数器变量的值就会增加或者减少。For循环的语法如下:
    Forcounter=startToend[Stepincrement]
      statements
    Next[counter]
    参数Counter、Start、end和increment都是数值型的。
    注意increment参数可正可负。如果increment为正,则Start必须小于等于end,否则不能执行循环内的语句。如果increment为负,则Start必须大于等于end,这样才能执行循环体。如果没有设置Step,则increment缺省值为1。
    在执行For循环时,VisualBasic
    1.设置counter等于start。
    2.测试counter是否大于end。若是的话,则VisualBasic退出循环。(若increment为负,则VisualBasic测试counter是否小于end。)
    3.执行语句。
    4.counter增加一,或者增加increment(如果已指定的话)。
    5.重复步骤2到步骤4。
    以下代码打印出所有有效的屏幕字体名:
    PrivateSubForm_Click()
       DimIAsInteger
       Fori=0ToScreen.FontCount
         PrintScreen.Fonts(i)
       Next
    EndSub
    在VCR示例应用程序中,HighlightButton过程使用For...Next循环,一步步经过VCR窗体的控件集合,并显示适当的Shape控件:
    SubHighlightButton(MyControlAsVariant)
       DimiAsInteger
       Fori=0TofrmVCR.Controls.Count-1
          IfTypeOffrmVCR.Controls(i)IsShapeThen
            IffrmVCR.Controls(i).Name=MyControlThen
               frmVCR.Controls(i).Visible=True
            Else
               frmVCR.Controls(i).Visible=False
            EndIf
          EndIf
       Next
    EndSub

    ForEach...Next
    ForEach...Next循环与For...Next循环类似,但它对数组或对象集合中的每一个元素重复一组语句,而不是重复语句一定的次数。如果不知道一个集合有多少元素,ForEach...Next循环非常有用。
    ForEach...Next循环的语法如下:
    ForEachelementIngroup
      statements
    Nextelementt
    例如,下面的子过程打开Biblio.mdb,把每一个表的名字加到列表框中。
    SubListTableDefs()
      DimobjDbAsDatabase
      DimMyTableDefasTableDef
      SetobjDb=OpenDatabase("c:\vb\biblio.mdb",_
      True,False)
      ForEachMyTableDefInobjDb.TableDefs()
        List1.AddItemMyTableDef.Name
        NextMyTableDef
      EndSub
    请记住使用ForEach...Next时的几点限制:
    1.对集合,element只能是Variant变量,或一般的Object变量,或“对象浏览器”中列出的对象。
    2.对数组,element只能是Variant变量。
    3.ForEach...Next不能与用户自定义类型的数组一起使用,因为Variant不可能包含用户自定义类型。

    使用控制结构
    嵌套控制结构可以把控制结构放入另一个控制结构之内(例如在For...Next循环中的If...Then块)。一个控制结构内部包含另一个控制结构叫做nest(嵌套)。在VisualBasic中,控制结构的嵌套层数没有限制。按一般习惯,为了使判定结构和循环结构更具可读性,总是用缩排方式书写判定结构或循环的正文部分。
    例如,下面的过程要把打印机和屏幕共有的字体名全部打印出来:
    PrivateSubForm_Click()
       DimSFont,PFont
       ForEachSFontInScreen.Fonts()
         ForEachPFontInPrinter.Fonts()
           IfSFont=PFontThen
             PrintSFont
           EndIf
         NextPFont
       NextSFont
    EndSub
    注意,第一个Next关闭了内层的For循环,而最后一个For关闭了外层的For循环。同样,在嵌套的If语句中,EndIf语句自动与最靠近的前一个If语句配对。嵌套的Do...Loop结构的工作方式也是一样的,最内圈的Loop语句与最内圈的Do语句匹配。

    退出控制结构
    用Exit语句可以直接退出For循环、Do循环、子过程或函数过程。Exit语句的语法很简单:ExitFor在For循环中出现的次数没有限制,ExitDo在Do循环中出现的次数也没有限制。
    Forcounter=startToend
      [Stepincrement]
      [statementblock]
      [ExitFor]
      [statementblock]
    Next[counter[,counter][,...]]
    Do[{While|Until}condition]
      [statementblock]
      [ExitDo]
      [statementblock]

    Loop
    ExitDo语句可以在Do循环语法的所有版本中使用。
    ExitFor和ExitDo非常有用,因为它有时适于立即退出循环,而且不再执行循环中的任何进一步迭代或者语句。例如,在前面的打印屏幕和打印机共有字体的例子中,程序不断将打印机字体和给定的屏幕字体作比较,甚至在已经找到了一个相符的打字机字体后还在继续寻找。对这个函数有一个效率更高的改进版,在此,只要找到相匹配的字体后就立即退出循环:
    PrivateSubForm_Click()
      DimSFont,PFont
      ForEachSFontInScreen.Fonts()
        ForEachPFontInPrinter.Fonts()
          IfSFont=PFontThen
            PrintSfont
            ExitFor        退出内圈循环。
          EndIf
        NextPFont
      NextSFont
    EndSub
    正如此例所表明的,Exit语句几乎总是出现在If语句或SelectCase语句内部,而If语句或SelectCase语句在循环内嵌套。
    用Exit语句中断循环时,计数器变量的值会因退出循环的方式而不同:
    1.在完成循环时,计数器的值等于上限值加上步进值。
    2.在提前退出循环时,计数器变量保持其值,并遵从有关取值范围的一般规则。
    3.在集合之外叠代时,如果计数器变量为Object类型,则其值为Nothing;如果计数器变量为Variant类型,则其值为Empty。

    退出子过程或函数过程
    也可从控制结构内部退出过程。ExitSub和ExitFunction的语法,和上一节“退出控制结构”中的ExitFor和ExitDo相似。ExitSub可以出现在子过程主体内的任何地方,出现的次数随需要而定。
    当过程已完成每个任务并可直接返回时,ExitSub和ExitFunction是非常有用的。例如,如果想改动前面的例子,使得对查找到的打印机和屏幕的共有字体,只打印其中的第一个,则可用ExitSub:
    PrivateSubForm_Click()
       DimSFont,PFont
       ForEachSFontInScreen.Fonts()
         ForEachPFontInPrinter.Fonts()
           IfSFont=PFontThen
              PrintSfont
              ExitSub          退出过程。
           EndIf
         NextPFont
       NextSFont
    EndSub

->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·adsl注册表优化大法之9x/me篇_注册表教程
·记录集锁定--多客户环境下vb数据库编程之(4)_visualbasic教程
·基于vb6.0射击游戏的实现_visualbasic教程
·visualbasic编程访问wmi对象_visualbasic教程
·数字电视机顶盒技术综述(上)_视频通信
·windows xp系统注册表十则设置技巧_注册表教程
·windows系统注册表知识完全揭密_注册表教程
·对注册表进行编辑的三种途径_注册表教程
·修改注册表权限加强对木马、病毒的防范_注册表教程
·走出注册表修改的三大误区_注册表教程

最新文章
·从注册表下手 切断一切黑客入侵的路径_注册表教程
·快速还原windows xp 注册表技巧_注册表教程
·改系统注册表 实现windows xp自动登录_注册表教程
·修复win xp无法显示隐藏文件的几个方法_注册表教程
·修改注册表 windows vista系统信息设置随心所欲_注册表教程
·在windows vista下轻松实现使用记事本打开文件_注册表教程
·windows vista上网注册表修改小技巧_注册表教程
·加快运行速度 xp系统注册表与驱动优化_注册表教程
·抢先了解最易被黑客利用的注册表位置_注册表教程
·巧改注册表还你windows桌面一片清净_注册表教程


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号