VB基本语法


VB基本语法
2011年06月24日
       图形用户界面(GUI)给计算机带来了一场革命,使计算机变得易于操作。这就是Windows现在能够成为最流行的操作系统原因之一。
    但在VB出现之前,用C语言编写一个最简单的程序都需要写几百行代码,就是专业程序员也感到头痛,直到VB的推出才改变了这一切,人们再不需要为界面而多作考虑,使Windows程序更易于开发。开创了所见即所得的可视化编程,引发了一场Windows程序设计的革命。
    Visual Basic 是一种面向对象程序设计语言,其特点是把代码和数据封装到一个对象中,当用户动用某个对象完成某个功能时,用户不需要知道对象具体是怎样进行工作的,用户只需编写代码传递一些信息就可以啦。
    下面先介绍面向对象编程的一些基本术语。
    1、对象
    Visual Basic 的对象与一般面向对象语言有所不同,它是实在的、具体可以看到的如:窗体、按钮等,不需要用大量的对象命令来定义对象的代码和数据块。在 Visual Basic 启动后就可以看到自动生成的窗体,然后我们只须把一些控件(其实就是对象)如文本框、按钮等加入到窗体上就可以完成了界面的编写,这是 Visual Basic 最具特色的地方。
    2、事件
    在 Visual Basic 中,把响应对象的动作称之为事件,对象与对象之间、对象和程序之间都通过事件来联系,如鼠标单击按钮事会产生一个Click事件,如果我们为这个事件编写了相应的代码,则系统将会执行此代码的过程。当过程完成后,控制权又交回系统,等待下一个事件的发生。
    3、属性
    在 Visual Basic 中,对象中的数据都被保存在属性中,所有对象都有属性,如文本框的Text属性就是文本框内的文字内容。
    4、方法
    Visual Basic 中,对象不但包含有数据,而且还包含有对数据进行操作的代码,这些代码称之为方法。
    好了,下面我们进入我们的正题,如何使用 Visual Basic 来进行编程,在这里对 Visual Basic 的主界面我就不作详细的介绍了。大家自己看一看书或者操作一下应该就会慢慢懂得了。
    下面针对 Visual Basic 中的各个对象也就是说窗体、控件来进行讲解,其他相关基础知识就不作详细说明了。 第一章、窗体
    在 Visual Basic 中,最主要的对象就是窗体,所有其他对象都只能在窗体之上存在。所以就先讲一下窗体对象常用的主要属性、事件、方法吧。
    一、属性
    1、Name,这是最基本的属性,所有控件都有该属性,主要用于标识某个对象。
    2、Caption,就是利用它来设置窗体的标题,一般来说,打开一个程序,首先看到的就是窗体的标题,所以标题往往是程序功能的一个简单说解或者是程序名称。
    3、Icon,也就是显示在标题左边的图标,如果你讨厌那代表VB的窗体图标的话,就选上一个来替换它吧。
    小技巧:将Icon设置成满意的图标后,再在工程属性中就可以设置生成程序的图标是该图标啦。
    4、MaxButton、MinButton,这两个分别是窗体右边的两个控制按钮,分别用来设置是否允许最大化、最小化的。设置为True,就是允许使用最大化及最小化。False则为不允许使用最大最小化。显示为变灰,不能使用。
    小技巧:第一、如果同时将MaxButton、MinButton同时设置为False,那么这两个按钮将消失不见,形成只有一个关闭按钮的窗口,适用于对话框这此不需要最大最小化之类的窗口。
    5、ControlBox,用于设置窗体左上角是否含有控制菜单框。也就是点击窗体图标时是否弹出菜单。默认值为True,有。你可以设置成False看看,怎么样,所有按钮都不见了吧。
    上面的2――5四个属性都是与标题栏有关,通过上面的属性,我们就可以学会如何控制窗体的标题栏啦。下面我们来学习客户区内的窗体控制。
    6、BackColor,英文好一点的就会明白是背景颜色属性,用于设置窗体的背景颜色。
    7、Top、Left、Height、Width。这四个属性分别是顶点、左边的坐标,高度和宽度属性。这四个属性决定了窗体在屏幕上的位置及大小。
    8、ScaleTop、ScaleLeft、ScaleHeight、ScaleWidth,我想有人看到了会头晕啦,这四个跟前面刚介绍的有什么区别?答案是:有,区别就在于前面的四个包含全部整个窗体,这四个属性只是客户区里面可用部分。也就是排除边框、标题栏有外。其他意思跟前面所讲一样。希望大家注意理解。
    9、Picture,如果英文好的不用说也知道是设置背景图片的啦。
    10、MousePointer,用于设置鼠标的外形,里面含有多种鼠标指针设置。
    11、MouseIcon,鼠标图标。这是用来设置自定义鼠标的。
    小技巧:如果将MouseIcon的图标设置好,然后在MousePointer中设置为99,即自定义,那么当你的鼠标划过窗体时显示的就是MouseIcon指定的图标啦。该方法也可以应用于所有控件。
    12、FontName,英文直译为字体名称,主要用来设置显示的字体。
    小技巧:其实在窗体上很少用到该属性,但并不是说它没有作用,如果当你在窗体中设置该属性的话,则后面添加的控件就会自动继承下来,这样就可以省去每个控件分别设置啦。
    13、Visible,设置窗体是否可视。缺省值为True,可视。
    14、KeyPreview,设置键盘优先顺序,即当窗体中正使用某个控件,此时发生键盘事件,用该属性来设置谁优先。
    15、StartUpPosition,设置窗体首次启动位置。可以设置为2,即启动时启中(屏幕最中央)。
    16、WindowState,设置窗体运行时的可见状态。0为正常,以设计是为准,1是最小化,2是最大化。
    17、BorderStyle,对象边框样式。0为无边线,1为固定边线,运行程序时无法改变窗体大小,2为不固定双边线,可以任意改变窗体。
    上面介绍到的属性如果大家还是不甚了解的话请在属性窗体中设置多几次,看一下效果就相对容易明白理解了。VB最大的好处就是可视化,所见即所得,不用运行也可以看到部分界面效果的变化的。好了,主要的属性基本说完啦,其他的都不是很重要就不再说啦。
    下面进入最重要的内容:事件。可以毫不夸张地说,不懂事件就不懂VB编程。
    二、事件。
    其实窗体的事件有不少,但有部分其他控件说起来比较适合,所以在这里只说其独有的、比较常用的。
    1、Initialize事件,窗体初始化。
    2、Load事件,窗体加载,但还没有显示。并且不能接收消息(这是我个人编程时的感觉,也不知道是不是准确)。
    3、Activate事件,窗体激活,开始接收消息并显示。
    4、QueryUnload事件,当窗体卸载之前激发该事件。
    5、Unload事件,窗体卸载时激发该事件。
    6、Resize事件,当窗体产生变化时激活该事件。
    7、Paint事件,当覆盖窗体的对象移动后,窗体重新显示出来时将触发该事件。
    哈哈哈,是不是有点头晕,这还不是全部事件呢。不要紧,这是很正常的,一下子说那么多肯定不容易接受,请注意下面几点就行啦。
    1、窗体启动时触发事件的顺序:按Initialize、Load、Activate先后触发。一般Initialize事件中不需要设置什么,它由系统自身在完成。需要注意的是Load事件及Activate事件,一般情况下,希望在窗体加载前完成的工作尽量在Load事件中添加,Load事件是窗体默认的事件,只要双击窗体就可以自动弹出代码窗口,将切换到了Load事件中,至于Activate事件,只是要调用到控件过程或需要触发某些系统消息时才应用到,如果大家在Load事件中出现某些错误无法执行但代码是正确的那么请转到Activate事件试一试,就容易明白了。
    2、窗体关闭时触发事件的顺序:QueryUnload、Unload事件。在这里,如果你希望让用户在不小心点击到关闭按钮时显示一个提醒或者温馨的提示,请在QueryUnload事件加入如下代码:
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
     Dim i As Integer
     i = MsgBox("如果真的不想继续玩就按确定,否则按取消。", vbOKCancel, "你真的不想继续玩了吗")
     If i = vbCancel Then
      Cancel = True
     End If
    End Sub
    3、Resize事件,这是窗体的一个重要事件,如果你希望不论窗体最大化还是正常显示,你的控件都能按比例缩放以达到最美的显示效果,那么请在这里添加你的代码吧。
    4、Paint事件其实也是一个非常重要的事件,但实际应用不是很多,原因是不需要我们考虑刷新问题,如果你想在窗体上作画能够保持下来给大家看的话,就请在该事件中添加吧。
    三、方法
    1、Show方法,主要用于打开显示窗体。用法:Form1(窗体名).Show
    2、Hide方法,主要是用于隐藏窗体。用法:Form1(窗体名).Hide
    3、UnLoad方法,主要用于卸载窗体。用法:UnLoad Form1(窗体名)。
    4、Print方法,在窗体打印输出。用法:Form1(窗体名).Print "要打印的东东。"
    简单实例,如果你希望关闭当前窗口并打开另一个窗体,你可以使用以下代码:
    Form2.Show  `第二个窗体加载显示出来。
    UnLoad Me  `将自己卸载掉。
    好了,总算把窗体相关的大部分知识说完啦,先透口气,然后再慢慢介绍其他控件吧,如果想了解VB控件总结的请继续关注哦!
  第二章、标签与文本框
    由 Visual Basic 中所有控件都是基于窗体之上的,所以在上一章中主要介绍了窗体的属性、事件、方法,现在开始分类介绍 Visual Basic 中的各种控件。
    在 Visual Basic 中,用来显示文字的主要是两个控件:标签及文本框,那么它们的区别是什么呢?
    标签,顾名思义就是起到提示的作用,一般主要用于说明某个图片、按钮、文本框的作用。比文本框占用的资源少。
    文本框,其功能要比标签强大,可以接收字符、字符串的输入和输出,所以它所占的资源也相应要比标签多。主要作用于让用户输入信息时的输入框。
    下面就分别介绍一下这两个控件的属性、事件、方法。
    一、标签
    属性
    1、Name,这是每个控件都有的,即设置标签对象的名称。
    2、Alignment,用于设置标签中文字显示的对齐方式。0、标签文字左对齐,这是缺省值;1、标签文字向右对齐;2、标签居中。
    3、AutoSize,用于设置标签的外框尺寸是否随标题大小自动改变。True表示标签的尺寸将随标题的更改而更改。False表示不更改,这是默认值。建议一般情况下都尽量设置为True。
    注意:一旦设置了该属性为True,则前面的Alignment属性自动失效。道理相信不用我说大家也一定会明白。
    4、BackColor,上一章已经说过,就是设置背景颜色。
    5、BordStyle,用于设置背景颜色是否透明显示。0为以透明方式显示,1是不以透明方式显示(缺省值)。一般情况下建议设置为0,这样就不会因为别人的电脑设置不同而显示出不用。
    6、BorderStyle,用于设置标签的边框形式,当为0时表示不含边框,这是默认值,1显示为立体下陷的固定边框。
    7、Caption,这是标签的最重要属性了,因为它的作用就是显示要表达的文字,即标题。
    8、ForeColor,设置前景色。通过设置这个属性,标签显示才能多姿多彩。
    9、Font,设置标签字体。
    10、WordWrap,决定标签控件是否扩大以显示标签文字。
    小技巧:将WordWrap及AutoSize组合使用就可以得到多行提示的显示方式。
    其他一些次要的属性可以参照窗体属性去了解,再这里就不再重复了。
    事件、方法
    标签其实也可以触发事件,如Click(鼠标单击事件)、DblClick(鼠标双击事件)等,但因为相对应用较少,所以在此不作介绍。
    二、文本框
    属性
    1、Name,这是每个控件的基本属性,用来设置文本框对象的名称。
    2、Alignment,用于设置文本框中文字显示的对齐方式。0、标签文字左对齐,这是缺省值;1、标签文字向右对齐;2、标签居中。
    3、BackColor,就是设置背景颜色。
    4、ForeColor,设置前景色。
    5、MultiLine,设置文本框是否允许多行文本,如果设置为True,则允许多行文本输入,False为不允许(默认值)。
    一般情况下,多数文本框是应用于单行输入,如输入口令、姓名、简短信息等等,但如果是大篇文章输入的话,如制作文本编辑器就应该设置为True。
    注意:文本框是有大小限制的,如果超过64K的话就会出错。
    6、PasswordChar,用于设置替代用户输入的密码字符,通常用于密码输入。一般情况下多数设置为“*”号,缺省值为空。如果你想让用户输入密码的话,可要记得设置该属性哦。
    7、ScrollBars,用于设置文本框是否含有滚动条。共有四个值:0为不含滚动条(默认值),1为水平滚动条,2为垂直滚动条,3为水平、垂直滚动条都有。一般与MultiLine配合使用。
    8、MaxLength,用于设置文本框中可以容纳的字符数,缺省值为0,表示无限制,如果是其他整数值,则表示文本框最多可以容纳的字符数。
    9、BorderStyle,用于设置文本框的边框形式,默认值为1,表示有边框,0为无边框,这时跟标签差不多了吧。
    10、Text,这是文本框最重要的属性,也就是文本框里面的文本内容。大部分利用文本框编程的都是利用这个属性来进行编程。
    其他的参照一下常用属性吧。
    事件
    文本框的事件也不少,但是下面只是简单地介绍一下它最常用的事件。
    1、Changed事件,这是文本框默认的事件。当文本框里面的文本发生变化时触发该事件。作用不用我说你们也知道了吧。为什么记事本能够知道你曾经修改过了文本,就是因为它触发了该事件。
    注意:其实大部分控件都有其默认的事件,只要你在设计窗体中双击该控件就会自动弹出。如果双击窗体就会发现窗体默认的是Load事件。
    2、KeyPress事件,击键事件,当用户按下和松开一个 ANSI 键时发生。
    3、KeyDown事件,当按下一个 ANSI 键时触发。
    4、KeyUp事件,当松开一个 ANSI 键时触发。
    下面我们还是用一个简单的实例来说明一下文本框的用法吧。
    Private Sub Text1_Change()
     If Len(Text1.Text) = 4 Then
      Text2.SetFocus
     End If
    End Sub
    Private Sub Text1_GotFocus()
     Text1.SelStart = 0
     Text1.SelLength = Len(Text1.Text)
    End Sub
    Private Sub Text2_KeyPress(KeyAscii As Integer)
     If KeyAscii = vbKeyReturn Then
      Text1.SetFocus
     End If
    End Sub
    运行一下试试,当第一个文本框输入够四个英文字母时自动进入到第二个文本框,当第二个文本框按回车时又自动进入到第一个文本框,并且已经自动选择了所有字符串。是不是挺有意思。好了,关于标签及文本框偶就先介绍到这吧。借用一休大师的名言:休息,休息一下。:)
  第三章、按钮
  按钮(Command),我想就不用多说了吧,相信大家都明白它的作用是什么吧。下面就它的常用属性、事件作个简单介绍。
    属性
    1、Name,用来标识按钮的名称。一般建议用Cmd+用途的英文单词来起名,如确定按钮就起名:CmdOK,这样容易理解,并且也利于自己编程。
    2、Caption,标题,主要作用就是给大家一个简短的按钮作用说明。
    3、Default,是否将当前按钮设置成窗体中的缺省按钮。如果一旦设置为True,则其他按钮的Default属性都会自动设置为False。这时候,一旦按回车,则该按钮会被优先触发。
    4、Cancel,是否将当前按钮设置成窗体中的取消命令按钮。如果一旦设置为True,则当程序运行时,按下Esc就会触发该按钮的Click事件。
    5、Enabled,设置按钮是否允许触发事件。如果有时候你不想让按钮执行你在Click事件中添加的代码,你可以将Enabled设置成False就可以啦。
    6、BackColor,设置背景颜色。
    我想不少新手一定会产生疑问,为什么我设置了背景颜色,按钮仍然是原来的灰色。答案其实很简单,因为你另外一个属性还没有设置好,那么这个属性是什么呢?答案就是:Style。
    7、Style,设置按钮的外观是标准的Windows风格还是图形风格。0为标准风格(默认值),1为图形风格。
    现在相信不用我说你们也一定会明白了吧,你只有将Style设置成1,你设置的BackColor属性才起作用。那么我们能不能在按钮上添加图片呢?答案是肯定的,因为 Visual Basic 已经提供了一个设置图片的属性。那就是:Picture属性。
    8、Picture,用来设置按钮上显示的图片。
    注意:这里与BackColor一样,Style属性必须先设置成1才能看到效果。
    9、Visible,设置按钮是否可视。如果你不想让按钮执行你在Click事件中添加的代码,并且又不想将Enabled设置成False,你可以将Visible设置成False就可以啦。这样连按钮都无法看到,看你怎么点。:)
    事件
    只要在设计窗体中双击按钮,就会自动弹出Click事件,那就是按钮默认的单击事件。注意,按钮与其他控件不同之处:它是没有DblClick事件的,也就是没有鼠标双击事件。
    1、Click事件,当用鼠标单击按钮时触发。
    怎么样,单击一下,就算没有添加任何代码,按钮还是会产生被按下然后弹起的动作。这样我们就可以把心思放到如何编写代码上面,而不必顾虑如何编写按钮被按下及弹起的动作了。
    2、MouseMove事件,当鼠标在按钮上移动鼠标时触发该事件。在这里你可以添加代码作相应的提示。当然你也可以用ToolTipText属性来作提示的。但那要停留一下才出现。而在MouseMove事件中你完全可以即刻显示提示了。试一下下面的代码吧。
    先在窗体上添加一个按钮及一个标签,然后在添加以下代码:
    Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     Label1.Caption = "你现在正将鼠标放在按钮上。"
    End Sub
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     Label1.Caption = "请你将鼠标在按钮上移动一下试试。"
    End Sub
    运行一下试试看效果,是不是挺好玩,好了,关于按钮就介绍到这吧。虽然少了一点。但最主要的我都介绍在内啦。其他的参考一下其他书本或者自己动手一下看看,你就会明白了。
  第四章 框架、复选框和单选框
  在 Visual Basic 中,除了窗体可以放置其他控件外,还有一个控件也可以,那就是框架(Frame)。框架的作用就是把一些控件组合起来形成一个组供大家选择。所以框架往往与复选框及单选框在一起使用。下面就简单介绍这三个控件。
    一、框架
    属性
    1、Caption,用来标识框架的标题,一般可以起到导航作用。
    2、BackColor,背景颜色。
    3、ForeColor,设置前景色,也就是标题颜色。
    4、Visible,设置是否可视。
    由于框架的作用只是为了分组便于用户方便选择使用。所以就不对它的事件进行说明了。下面说一下复选框。
    二、复选框
    属性
    1、Alignment,设置复选框的标题是在左边还是右边,0表示标题在右边(这是缺省值),1为标题在左边。
    2、BackColor,背景颜色。
    3、Caption,用于设置复选框的标题。
    4、ForeColor,设置前景色,也就是标题颜色。
    5、Value,设置复选框的值。0为没有选择,1为选择,也就是框内打上个勾。2为复选框处在灰色状态。
    6、Index,这个是控件数组才用到的。由于复选框及单选框都是成组出现供选择的,所以建议大家用到复选框及单选框时尽量使用控件数组。
    这是复选框最重要的属性,编程就是利用Value的值判断用户是否选择。
    事件
    复选框默认的事件为Click事件,具体可以参考按钮的Click事件,但这里涉及到控件数组问题所以就说明一下该事件参数的变化。
    在这里如果没有用控件数组的话,Click事件是没有参数的,但如果用到了控件数组的话就加上了一个参数:Index As Integer,利用Index来标识是控件数组中那个点击。
    下面说一下单选框。
    三、单选框
    属性
    1、Alignment,设置单选框的标题是在左边还是右边,0表示标题在右边(这是缺省值),1为标题在左边。
    2、BackColor,背景颜色。
    3、Caption,用于设置复选框的标题。
    4、ForeColor,设置前景色,也就是标题颜色。
    5、Value,设置单选框的值。False为没有选择,True为选择,也就是圆框内加上个圆点。
    6、Index,控件数组的标识号。具体看上面复选框所述,这里就不再重复。
    事件
    单选框默认的事件也是Click事件,具体可以参考复选区框的Click事件,这里就不再详述了。
    下面就用一个简单的实例来说明一下这三个控件的用法吧。在这里说一下建立控件数组的方法:
    方法1、将第一个控件放到窗体或框架上,然后复制该控件,然后在相同的容器(也就是窗体或框架)上粘贴,系统自动会提示你是否建立控件数组。点击“是”就可以建立了。
    方法2、当控件已经存在时,将其中的一个Index设置为0,然后将其他的名称全部依次改成与刚才设置Index为0的名称一样就可以了。
    程序代码如下:
   Private Sub Check1_Click(Index As Integer)
    Dim i As Integer, j As Integer
    Dim strProgram As String
    For i = 0 To 3
     If Check1(i).Value = 1 Then
      strProgram = strProgram & " " & Check1(i).Caption
      j = j + 1
     End If
    Next i
    Label2.Caption = "你的电脑已经安装:" & strProgram & Str(j) & "种工具软件"
   End Sub
   Private Sub Option1_Click(Index As Integer)
    Label1.Caption = "你的电脑是:" & Option1(Index).Caption & "级别"
   End Sub
  第五章 列表框、组合框(下拉列表框)
    列表框、组合框和单选框、复选框都是提供用户选择数据的控件,只是列表框及组合框都把数据放在同一列表中,而不象单选框、复选框那样,一个控件只能拥有一个数据。下面就介绍一下这两个控件。
    一、列表框
    列表框显示项目列表,从其中可以选择一项或多项。如果项目总数超过了可显示的项目数,就自动在 ListBox 控件上添加滚动条。
    如果未选定项目,则 ListIndex 属性值是 -1。列表的第一项是 ListIndex 0,ListCount 属性值总是比最大的 ListIndex 值大 1。
    属性
    1、List,设置列表框控件的列表中包含的项。
    2、Sorted,设置列表项中的内容是否自动按字母顺序排序。
    3、Style,设置或返回一个值,决定是否将复选区框显示在列表框内。
    4、MultiSelect,设置是否允许用户在列表框中进行多重选择。0(默认值)为不允许进行多项选择,1简单的多项选择,2为扩展的多项选择。
    5、ListCount,列表项的总数目。
    6、ListIndex,列表框的中列表的索引号。
    事件
    1、Click事件,这是列表框相对用的较多的事件,当鼠标单击列表框时发生。
    2、DblClick事件,鼠标双击事件。当鼠标在列表框上双击时发生。
    方法
    1、AddItem方法,在列表框添加一列表项。
    2、RemoveItem方法,在列表框中删除某一列表项。
    3、Clear方法,将列表框所有列表项全部删除清空。
    二、组合框
    也有人称之为下拉列表框,组合框将文本框控件和列表框控件的特性结合在一起――既可以在控件的文本框部分输入信息,也可以在控件的列表框部分选择一项。
    属性
    1、List,设置组合框控件的列表中包含的项。
    2、Sorted,设置组合框下拉列表项中的内容是否自动按字母顺序排序。
    3、Style,设置组合框的显示方式。
    (0)为下拉组合框,包括一个下拉列表和一个文本框。用户可以在列表中选择也可以直接在文本框中输入。这是默认值。
    (1)为简单组合框,包括一个不会下拉的列表。作用以前面相同。
    (2)为下拉列表,这种类型只允许从下拉列表中作出选择。
    4、Text,组合框中显示的文本。一般情况下,我们编程都是利用该属性知道用户选择什么。
    5、ListCount,组合框中所有项的总数目。
    6、ListIndex,组合框的中列表的索引号。
    事件
    1、Click事件,这是组合框相对较有用的事件,当鼠标单击组合框选择下拉列表中的某一列表项时发生。
    2、Change事件,这是组合框的默认事件。当组合框中的文本发生变化时触发。
    方法
    1、AddItem方法,在列表框添加一列表项。
    2、RemoveItem方法,在列表框中删除某一列表项。
    3、Clear方法,将列表框所有列表项全部删除清空。
    下面就以一个综合实例来结束本节学习课程。
   Private Sub Combo1_Click()
    Label1.Caption = "你准备考试的科目为:" & Combo1.Text
   End Sub
   Private Sub Command1_Click()
    Dim intIndex As Integer
    For intIndex = 0 To List1.ListCount - 1
     If List1.Selected(intIndex) Then
      List2.AddItem List1.List(intIndex)
     End If
    Next intIndex
   End Sub
   Private Sub Command2_Click()
    List2.Clear
   End Sub
   Private Sub Form_Load()
    Combo1.AddItem "大学语文"
    Combo1.AddItem "高等数学"
    Combo1.AddItem "高等物理"
    Combo1.AddItem "计算机原理"
    Combo1.AddItem "数字逻辑电路"
    Combo1.AddItem "高级程序语言设计"
    Combo1.AddItem "数据库编程"
   End Sub
  第六章 垂直滚动条、水平滚动条
    相信大家对滚动条一定不会陌生,因为在浏览网页时就经常要用到滚动条将不能看到的部分拉出来浏览。滚动条的作用就是以滚动的方式来代替输入,将不能浏览的部分拉出来观看。由于垂直滚动条和水平滚动条只是滚动方向不同而已,其他方法、属性、事件基本相同,所以就并在一起说。
    属性
    1、Min,用于设置最小值,也就是垂直滚动条在最左边时或水平滚动条在最上边时的值。取值范围:-32768――32767。默认值为0。
    2、Max,用于设置最大值,也就是垂直滚动条在最右边时或水平滚动条在最下边时的值。取值范围:-32768――32767。默认值为32767。
    3、Value,表示滚动条中滚动块当前所处的值,取值范围是Min――Max。
    4、LargeChange,最大改变值,当鼠标点击滚动条上滚动块到箭头之间的区域时,滚动块一次移动的值。
    5、SmallChange,最小改变值,当鼠标点击滚动条上的箭头时,滚动块一次移动的值。
    事件
    1、Change事件,当滚动条中滚动块位置发生变化时触发该事件。这也是滚动条默认的事件。
    好了,下面我们就以一个实例来说明滚动条的应用。该程序的作用就是将一个大的图片通过滚动条可以全部浏览完。
    首先,在窗体上加上一个框架,然后在框架上添加一个图片框(Picture,下一章再详述),将其AutoSize属性设置为True。然后在Picture属性中添加一幅图片。当然该图片要大于框架。然后在框架两边分别添加一个水平滚动条和一条垂直滚动条。然后输入以下代码:
   Private Sub Form_Load()
    VScroll1.Max = Frame1.Height - Picture1.Height
    HScroll1.Max = Frame1.Width - Picture1.Width
   End Sub
   Private Sub HScroll1_Change()
    Picture1.Left = HScroll1.Value
   End Sub
   Private Sub VScroll1_Change()
    Picture1.Top = VScroll1.Value
   End Sub
  第七章 图片框、图像框
    Visual Basic 给我们提供了两个用来显示图片的控件,那就是图片框(picture)、图像框(Image),那么它们有什么区别吗?
    答案肯定是有的,要不然也用不着两个控件那么浪费吧。那么它们的区别是什么呢?图像框的主要作用是显示图片,但不能处理图片,所以它的显示速度要比图片框快,并且它有一个特殊的属性可以令图片缩放来适合控件自身大小;图片框的功能要比图像框的要大得多,通过它不但可以显示图片,而且可以处理图片:如逐个处理像素使图片显示出特效、用基本的图形方法画图等等。
    注意:虽然图片框功能强大,但它占用的内存多,处理时间长,所以如果仅仅是为了显示图片的话最好还是使用图像框。
    好了,下面就分别介绍这两个显示图片的专用控件。
    一、图片框
    属性
    1、AutoRedraw,是否自动重新绘画。
    2、AutoSize,决定控件是否自动调整大小以显示整张图片。
    3、ClipControls,决定Paint事件的graphics方法是重画整个对象,还是重画新显示的区域。
    4、Picture,用于设置或返回控件中显示的图形。
    5、ScaleMode,用于设置或返回一个值,决定当前使用graphics方法或可定位的控件事,对象坐标的度量单位。
    注意:一般情况下这个属性不需要特别设置,但处理图片时则需要将它设置为3――pixel,以像素为单位。
    事件
    click事件,这是默认的事件,具体前面多有介绍就不再重复。
    Paint事件,重画事件,一般为当遮掩的部分离开时触发该事件。
    由于利用图片框事件编程相对较少,所以就只是简单地介绍到这里。
    方法
    1、Cls方法,将图片框的图片清空。
    2、SavePicture方法,用来将图片框内的图片保存到磁盘上。
    注意:SavePicture方法只有保存BMP、WMF、ICO格式的图像(由原始图像文件类型决定)。如果原来的图片是JPG、GIF格式的话,要用BMP格式来保存。
    用法:SavePicture PictureBox1.Picture "c:\test.bmp"
    3、LoadPicture():用来动态加载图片。
    注意:书上把这个归入到函数类,但考虑到功能分类,所以就在方法这里解说。
    用法:PictureBox1.Picture = LoadPicture(App.Path & "\test.jpg")
    函数
    在这里主要介绍一些在图片框作图用到的函数。
    1、Circle(),画圆。
    格式:PictureBox1.Circle [Step] (x,y), radius,[color,start,end,aspect]
    参数说明:
    step――指定圆、椭圆或圆弧中心点的坐标是与画图对象的Currentx和Currenty属性给出的当前坐标相对的坐标。
    x,y――单精度浮点数,指定圆、椭圆或圆弧中心点的坐标。图片框的ScaleMode属性决定使用的度量单位。
    radius――单精度浮点数,指定圆、椭圆或圆弧中心点的半径。图片框的ScaleMode属性决定使用的度量单位。
    color――指定圆的轮廓的RGB颜色。如果省略的话,将使用ForeColor属性值。
    start,end――单精度浮点数,在只画圆弧、椭圆的一部分时,start和end指明圆弧的开始和结束位置。其范围是-2∏到2∏弧度。start默认值为0,而end为2∏。
    aspect――单精度浮点数,指定圆的方位系数,默认值为1.0,它能在屏幕的任何位置产生一个完整的圆(不是椭圆)。
    例子:PictureBox1.Circle(80,70),50
    2、Line(),画直线。
    格式:PictureBox1.Line [Step] (x1,y1) [Step] (x2,y2) [color], [F]
    参数说明:
    step――指定相对于由的Currentx和Currenty属性给出的当前图形位置的起点相对的坐标。
    x1,y1――单精度浮点数,指定指定直线或矩形的起点坐标。图片框的ScaleMode属性决定使用的度量单位。如果忽略此值,线的起点位置由Currentx和Currenty决定。
    Step――指定了直接终点坐标是相对于直线起点的相对坐标。
    x2,y2――单精度浮点数,指定指定直线或矩形的终点坐标。
    color――指定画线用的RGB颜色。如果省略的话,将使用ForeColor属性值。
    B――如果使用该参数,就会有指定的对角坐标画一个矩形。
    F――如果使用了B参数,F选项将指定用矩形外框的颜色填充矩形框。如果没有B参数,则F参数就不能使用。如果仅使用B参数没有使用F参数,则矩形内填充的颜色由当前设置的FillColor和FillStyle的值决定,FillStyle属性的默认值是透明的。
    3、PSe(),设置点。
    格式:Picture1Box1.Pset[step](x,y),[color]
    参数说明:
    step――指定相对于由的Currentx和Currenty属性给出的当前图形位置的相对坐标。
    x,y――单精度浮点数,指定所设的点的水平(X方向)和垂直(Y方向)坐标。
    color――长整型数值,指定点的RGB颜色。如果省略的话,将使用ForeColor属性值。
    二、图像框
    由于大部分跟图片框相同,我就不再重复,只是说一下图像框特有的一个属性:Stretch。
    Stretch,返回或设置一个值,决定是否调整图形的大小以适应图像框控件。这个与图片框的AutoSize相反,图片框的AutoSize是将自身改变大小来适应显示图形。
    至于其他事件也基本跟图片框相同,但没有Paint事件,无法进行图形绘制及处理。
    好了,关于图片框及图像框就简单地介绍到这吧。
  第八章 计时器
    计时器的作用就是按照你定义的时间进行计时触发。当我们要进行定时或者在某一特定时间段内循环执行某一代码时就要利用到计时器了。
    属性
    1、Enabled,是否允许计时器计时。
    2、Interval,设置时间间隔,1000为1秒。
    注意:虽然计时器的单位是毫秒(1/1000S)但实际上计时器处理不能超过每秒18.2次(这是计算机时间中断周期),最长为64767,即一分钟多点。
    事件
    Timer事件,这是计时器唯一的事件。按计时器Interval属性指定的时间间隔依次触发。
    下面就用编制一个时钟及秒表的简单程序来结束这一章吧。
    在窗体上分别添加两个按钮,按钮1的标题为“开始”,按钮2的标题为“结束”,添加一个标签用来显示秒表计时,添加两个计时器分别用来控制时钟及秒表。控制秒表的计时器Enabled设置为False。
    在窗体中添加以下代码:
   Dim StartTime As Date
   Private Sub Command1_Click()
    StartTime = Now
    Timer2.Enabled = True
   End Sub
   Private Sub Command2_Click()
    Timer2.Enabled = False
   End Sub
   Private Sub Form_Load()
    Timer1_Timer
   End Sub
   Private Sub Timer1_Timer()
    Form1.Caption = Time$
   End Sub
   Private Sub Timer2_Timer()
    Label1.Caption = Format$(Now - StartTime, "hh:mm:ss")
   End Sub

猜你喜欢

转载自exd637df.iteye.com/blog/1356580
VB
今日推荐