VisualBasic控件结构概述

b182sc6d3xuels

b182sc6d3xuels

2016-02-19 13:33

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

  循环结构
  循环结构允许重复执行一行或数行代码。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:vbiblio.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://m.tulaoshi.com/bianchengyuyan/)->

展开更多 50%)
分享

猜你喜欢

VisualBasic控件结构概述

编程语言 网络编程
VisualBasic控件结构概述

VisualBasic概述

编程语言 网络编程
VisualBasic概述

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VisualBasic概述二

编程语言 网络编程
VisualBasic概述二

VisualBasic控件简介

编程语言 网络编程
VisualBasic控件简介

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

VisualBasic控件的使用

编程语言 网络编程
VisualBasic控件的使用

VisualBasic控件数据

编程语言 网络编程
VisualBasic控件数据

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

jQuery html() in Firefox (uses .innerHTML) ignores DOM chang

jQuery html() in Firefox (uses .innerHTML) ignores DOM chang

基于jQuery的消息提示插件之旅 DivAlert(三)

基于jQuery的消息提示插件之旅 DivAlert(三)
下拉加载更多内容 ↓