当前位置:首页 >> IT/计算机 >> VB教程(图文并茂)

VB教程(图文并茂)


VB 神童教程:跟我来学 VB 神童教程:
VB 的故事 话说二十世纪七十年代有一对好朋友, 一个叫比尔 (Bill) ,一个叫鲍尔(Paul) 。他们经常在一起玩游戏。 起初是玩别人的游戏,但玩来玩去觉得不过瘾,于是发 明了一种语言,叫做 Basic ,自己来编写游戏。 碰巧 的是,个人电脑在此时飞速发展起来,很多厂家对这种 语言很感兴趣, 于是这对朋友商量着成立一个公司专门 出售 Basic。 讲到这里,大家一定猜到他们是谁了吧? 没错, 这个 Bill 就是比尔盖茨, 这个公司就是微软; 鲍尔(Paul Allen)后来虽然离开了微软,但同样组建了 自己的实业公司。 Basic 正是微软公司售出的第一套软件。 Basic 发展 到今天已经有很多版本,如 GW-Basic 、QuickBasic 、 QBasic 、Visual Basic ,等等,其中,Visual Basic 是 最容易学习与应用的程序语言之一。 虽然最容易学习与 使用,但它的功能却非常强大,很多应用程序都是用它 编写出来的。 不是个个都能成为比尔盖茨, 但你想知道天天使用 的 Windows 的诸多功能是如何实现的吗?你想要编写 自己的应用程序吗?那么,请跟我来吧,进入我们的 VB 神童教程之旅。 学习思路 曾经下过很多决心自学 VB。但每次看到一行行枯 燥的程序代码眼皮不自觉地就要打架。后来几乎是“头 悬梁,锥刺股”才得入门。现在想来,这种入门大可不 必。 严谨求实的态度是非常正确的, 但既然面对初学者, 也许换一种思路更贴切。少一些隐晦,多一些直观;少 一些专业术语,多一些例子。 传统的教程,多从 VB 的发展谈起,然后是什么编 程环境、数据类型、变量、常量、函数,等等。我们可 不可以换一种思路, 让大家直接就可以编写出简单的应 用程序,在熟悉了大部分操作并激发出了兴趣后,再去 探讨一些比较抽象的东西呢? 结果就有了我们的《VB 神童教程》 。 在这个教程中,我们既是讲述者,也是跟大家一样 的初学者,我们按着一种比较容易的方式来共同学习。 课程安排 我们以最为普及的 VB 6.0 为例进行教程学习,循序渐 进,保证你轻松掌握。 第一章:我的第一个 VB 程序——“跟我来学 VB 神 童教程” 第二章:控件学习 第一节——Label 控件 第二节——TextBox 控件 第三节——综合示例一 第四节——CommandButton 控件 第五节——单选与复选控件 第六节——综合示例二 第七节——列表框控件 第八节——组合框控件 第九节——综合示例三 第十节——综合示例四 第十一节——滚动条 第十二节——综合示例五 第十三节——Timer 控件 第十四节——文件操作控件 第十五节——窗体 第三章:用 Visual Basic 绘画: 第一节——图形框与图像框控件 第二节——综合示例六 第三节——直线与形状控件 第四节——常用的绘图方法 第四章:菜单与多文档界面的制作: 第一节——菜单界面设计 第二节——综合示例七 第三节——动态增减菜单 第四节——基本的窗体操作 第五节——多文档程序

vb 神童教程第一章:我的第一个 VB 程序 神童教程第一章:
一、打开程序: 点击桌面上的 Visual Basic 图标, 在弹出的如图一的窗 口中选择“创建标准 EXE”按钮。

图一 确定后的状态如图二

第 1 页 共 42 页

然后你会发现程序界面上多了一个命令按钮,如图四:

图二 这就是创建了一个新的“标准 EXE”文件了。 二、工作界面简介: 默认的 VB 工作界面由标题栏(1) 、菜单栏(2) 、工 图四 具栏(3) 、工具箱面板(4) 、程序设计区(5) 、项目窗 用鼠标拖动新建的按钮到适当位置,如图五: 口(6) 、属性窗口(7) 、布局窗口(8)组成,至于它 们具体有什么作用,我们将在以后的实例学习中接触, 这里就不予以说明。 三、编写我的第一个应用程序: <1>、应用程序要产生的效果: 创建的应用程序要有什么样的功能?这是开发每一个 应用程序必须最先想到的。 我们的第一个应用程序非常简单, 使用者只需点击程序 上的一个按钮, 程序界面上就会显现 “跟我来学 VB 神 童教程”字样。 <2>、开发思路: 根据应用程序要实现的功能, 那么我们至少需要制作一 个按钮、一个程序界面,为了让应用程序更规范,我们 还需要创建一个用来显示“跟我来学 VB 神童教程” 字样的容器。 图五 <3>、具体制作过程: 再创建一个标签按钮,双击如图六的图标: 1、创建一个新的“标准 EXE”文件,如第一步所做。 需要指出的是,这个以 Form1 为标题栏的程序界面就 是我们需要的“程序界面” ,也是用户首先看到的对象, 所以尽可能将其做得美观一点。 当然,对应用界面的美化问题我们将在以后探讨。 2、根据开发思路,现在我们来制作按钮。 图六 双击工具箱面板上的命令按钮 (Command Button) 图标, 完成后程序界面如图七: 如图三:

图三 第 2 页 共 42 页

3、对按钮属性进行设置: 开发任何应用程序,在完成界面布局后,应该就每一个 元素进行属性设置以达到自己的要求。当然,也可以在 元素布局的过程中进行属性设置。 首先点选箭头状的 “选择”图标以便进行选择,如图十:

图十 选中程序界面上的命令按钮,然后找到属性面板,如图 十一: 图七 用鼠标拖动标签按钮到合适位置,如图八:

图十一 其中, “名称:Command1”是此按钮的名称,主要用于 程序引用,所以不要用中文名字。 此处,可以不修改 按钮的名字,但为了程序更规范,我们将其名字改成 “CmdShow” ,如图十二:

图八 将鼠标放在标签按钮左右边缘任意一处, 当鼠标呈左右 键头时横向拖动,把标签按钮拖长,最后的程序界面如 图九:

图十二 “Caption:Command1”是命令按钮的标题,也就是显 示在命令按钮上的字样, 我们将其改成“显示” ,如图十三:

图九 第 3 页 共 42 页

图十三 用上面的方法, 我们将标签按钮的名字改为 “LblShow” , 如图十四: 图十六 在光标闪烁处输入代码:LblShow.Caption = "跟我来学 VB 神童教程"(这句程序是什么意思?以后我们讲 述) 。如图十七:

图十四 将标签按钮的标题改成空字符串,也就是没有任何文 字,如图十五: 图十七 输入完毕,点击右上角的 “X” 回到对象窗口,然后 点击工具栏上的“启动”按钮(快捷键:F5) ,可以看 最终结果了! 四、知识点: 1、我们的第一个程序确实非常简单,但它道出了程序 设计的基本方法:首先,应用程序要用来做什么?也就 是开发应用程序的目的;其次,应用程序大体上由哪些 元素组成?也就是应用程序的操作界面如何,如果可 能,最好先用笔把程序界面画出来;然后是对程序界面 图十五 中每一个元素的属性进行设置; 最后输入程序代码和调 4、输入程序代码: 我们前面讲到的元素布局、 属性设置只不过是对应用程 试。 序操作界面的定制,要让程序实现功能,关键还得输入 2、前面我们所谈到的“命令按钮”“标签按钮” 、 ,其实 程序代码。 选中命令按钮 CmdShow ,然后双击它, 它们准确的说法是“命令按钮控件”“标签按钮控件” 、 , 无论是这些控件,还是刚才作为应用程序界面的“窗 弹出如图十六的程序代码输入窗口: 体” ,都是“对象” ,因此, VB 是一门面向对象的编 程语言,每一个对象都具有很多属性,如大小、位置、 标题等等。属性的设置通过属性窗口完成。 3、这一点的内容不需强记,在以后的控件讲述中将会 涉及。 除了“命令控钮控件”“标签按钮控件” 、 ,默认的工具 箱面板上还有“指针”工具(用来选择程序设计窗口中 的对象) 、图片控件(在界面上添加图片) 、文本框控件 第 4 页 共 42 页

(在界面上显示文本或用来输入文本) 选项框控件 、 (主 要用来作为区域划分的控件, 一般把相同类型的控件放 置在一个选项框中, 把其他类型的控件放在其他选项框 中) 、复选控件(用来制作复选按钮) 、单选控件(制作 单选按钮) 、组合框控件(用来制作功能更为强大的列 表框,既有文本框控件的功能,还有列表框控件的功 能) 、列表框控件(制作各种列表) 、滚动条控件(共有 横向与竖直两种) 时钟控件 、 (一般用来添加时间触发) 、 文件操作控件(共有磁盘列表框控件、文件夹列表框、 文件列表框三种) ,另外,还有绘图控件、图像框控件、 日期控件。 4、VB 提供了丰富的控件选择,除了默认的工具箱面 板上的控件外,还有很多控件没有罗列出来,我们可以 通过“工程‖部件”命令或在工具箱面板上单击鼠标右 键,在弹出的快捷菜单中选择“部件”命令,弹出如图 十八的窗口:

图十九 7、 在前面的例子: LblShow.Caption = "跟我来学 VB 神 童教程"中, “=”并不是数学中的等号,而是一种赋值 符号,表示:将“跟我来学 VB 神童教程”这个字符 串赋值给 LblShow ,并作为它的标题。 另外如:X = X+6 ,在数学中,这种表达式不存立,而 在 VB 中,是指在 X 本来的基础上加 6 ,然后把结 果重新赋给 X ,这时 X 的值不再是原来的数字,而 是加上 6 后的值。 8、程序的保存: 在 VB 中进行保存,常常用“保存工程”命令,而在 保存过程中,必须保存两次,一次是以 .frm 为扩展名 的文件保存,另一次是以 .VBP 为扩展名的文件保存。 前者是保存应用程序的窗体文件, 后者是保存应用程序 的工程文件。如图二十与图二十一:

图十八 本窗口罗列了当前系统中所有的控件, 只需选中所需控 件前面对应的复选框就行了。 5、编写程序应该养成好习惯,在给每一个对象命名时 首先要保证规范,其次要能“望文生义” ,也就是看见 一个对象的名字就能知道它是做什么的, 如前面我们给 命令按钮控件起名为“CmdShow” ,一看就知道是用来 Show 的 Command 类型控件。 6、我们最初进入的程序设计界面是对象界面,进入代 码界面的办法很简单,前面用到的双击控件是一种办 法,另外还可以通过点击项目窗口中的“查看代码”按 钮进入,如果点按旁边的“查看对象”按钮就会又回到 原来的对象界面。如图十九:

图二十

图二十一

vb 神童教程第二章第一节 神童教程第二章第一节——Label 控件
在第一章,我们已经知道,任何一个 VB 程序都是由 第 5 页 共 42 页

操作界面及与之相应的程序代码组成, 而操作界面则是 效果,如图二显示的两个标签: 由诸如“命令按钮控件”“标签控件”等控件以及窗体 、 共同组成。从本章开始,我们进入控件的学习过程。 Label(标签控件)是图形控件,主要作用在于显示文字 信息,如大家比较熟悉的程序安装界面:在某个软件安 装过程中, 常常会显示一些帮助信息或与产品相关的介 绍信息,而这些,大多是用标签控件制成的。 与以后我们要学到的文本框控件(TextBox)不同的是, 图二 标签控件显示的文字不能直接进行修改, 要修改的话只 BorderStyle 属性可以在设计界面时指定,如图三: 能在设计阶段进行;文本框既可以用来显示文本,还能 够在文本框中输入文本。 在 Visual Basic 工具箱中,标签控件的图标如图一所 示。 标签的默认名称 (Name) 和标题 (Caption) LabelX 为 (X 为 1、2、3,等等) ,规范的命名方式为:LblX(X 为自己定义的詞,如 LblShow 、LblRed ,等等) 图三 也可以在程序中改变(但这种应用不多见) ,程序代码 规则: 标签名.BorderStyle = 0/1(0 或 1,两者取一) 习 题 一 : 创 建 一 个 标 签 ( LblShow ) 两 个 按 钮 、 (CmdChange1、CmdChange2) ,点按 CmdChange1 , 标签有边框;点按 CmdChange2 ,标签无边框。 联想:在完成本题后,你可能会想到,有没有办法用一 图一 一、标签控件的主要属性: 个按钮来完成本题的功能?即鼠标点击一下, 标签有边 框,再点一下,标签边框消除,再点一下,边框又出现, 1、Caption(标题)属性: 此属性用来设置在标签上显示的文本信息, 可以在创建 以此类推。回答是肯定的,不过,这是在以后的学习中 界面时设置,也可以在程序中改变文本信息,如第一章 要讲的。 答案:见本节最后的答案区。 的例子中,通过点击按钮改变标签显示的字样。 3、Font(字体)属性: 如果要在程序中修改标题属性,代码规则如下: 本属性用来设置标签显示的字体, 既可以在创建界面时 标签名称.Caption = "欲显示的文本" 如第一章在程序中改变标签 LblShow 的 Caption 属 设定,也可以在程序中改变。 在创建界面时设定,如图四: 性: LblShow.Caption = "跟我来学 VB 神童教程" 但是请大家注意, 上面的代码应该写入供触发的控件对 应的程序代码区,如第一章中,是在命令按钮的程序代 码区输入的代码,而不是标签本身的代码区哟。 这也是初学者常常大惑不解的地方, 为什么我要让标签 改变字样,却要在其他控件中输入代码?这是因为,我 图四 们是通过触发其他控件这个事件来让标签改变 Caption 在图四的设置界面中,除了可以选择字体,还可以设置 属性的。 显示文字是否为粗体、斜体、下划线等。 当然, 你也可以让标签本身来触发 Caption 属性改变事 在程序中改变 Font 属性,程序代码书写规则如下: 件,如用鼠标点击标签,这时你就需要在标签对应的程 字体改变:标签名.FontName = "字体类型",其中, “字 序代码区输入代码了,但在实际编写中,这种情况非常 体类型”可以是中文,如“宋体”“隶书” 、 ;也可以是 、 ,等等,不 罕见。毕竟,标签控件用于显示信息的本意远远超过了 英文名,如“Arial”“Times New Roman” 过,这些字体名称必须是电脑上有的。 响应鼠标点击的意图。 字体大小改变:标签名.FontSize = X ,其中,X 是阿 2、BorderStyle(边框)属性: 本属性用来设置标签的边框类型,有两种值可选:0, 拉伯数字,代表字体是几号字。如:LblShow.FontSize = 代表标签无边框;1,代表标签有边框,并且具有三维 11 。 第 6 页 共 42 页

粗 体 ( FontBold ) 斜 体 ( FontItalic ) 下 划 线 、 、 (FontUnderline) 、删除线(FontStrikethru)属性的设置 值是代表真/假的逻辑判断值 True/False ,如下: LblShow.FontBold = True/False LblShow.FontItalic = True/False 习题二:一个标签(LblShow)用于显示文本;按钮 1 (Cmd1)可以让标签显示的字体变成隶书;按钮 2 (Cmd2)可以让标签显示的字体变成 13 号字; 按钮 3 (Cmd3)可以让字体变成粗体。 答案:见本节最后的答案区。 4、Alignment(对齐)属性: 此属性用来设置标签上显示的文本的对齐方式,分别 是:左对齐,0;右对齐,1;居中显示,2。可以在界 面设置时设定,如图五:

图五 也可以在程序中改变,代码如下: 标签名.Alignment = 0/1/2 5、Visible(可见)属性: 本属性在大多数控件中都有,它能设定该控件是否可 见。当值为 True ,控件可见;当值为 False ,控件隐 藏。 控件的可见属性可以在界面设置时设定,如图六:

图六 也可以在程序中改变,代码如下: 标签名.Visible = True/False 习题三:一个标签(LblShow) ,在界面设置时为可见; 按钮 1(Cmd1) ,能够让标签隐藏;按钮 2(Cmd2) , 能够让标签显现。 答案:见本节最后的答案区 二、标签控件(Label)的主要事件:

所谓的事件,其实就是用户对应用程序的操作,如第一 章中用鼠标点击命令按钮触发的 Click 事件。 事件的作用在于触发程序的执行,如第一章中的 Click 事件改变了标签控件的 Caption 属性。 标签控件的主要作用在于显示文本信息, 但也支持一些 为数不多的事件。 1、Click 事件(鼠标单击) : 用鼠标点击标签时触发的事件,如改变标签的字体属 性: Private Sub LblShow_Click() LblShow.FontName = "隶书" End Sub 2、DbClick 事件(鼠标双击) : 鼠标双击引发的事件,如改变标签的可见性: Private Sub LblShow_DbClick() LblShow.Visible = False End Sub 三、知识点: 1、用 VB 编写程序犹如搭积木,把每块“积木” (控 件或其他对象)放在合理的位置,然后以某种机制(程 序)将这些“积木”们运用起来,最后就搭成了我们需 要的东西。所以,掌握每一种控件,包括它们的属性与 主要事件,是我们学习编程的基础! 2、某些属性是大多数控件所共有的,如 Name 、 FontBold、FontItalic、Visible ,等等;但也有些属性是 某个控件所独有的,如标签控件的 WordWrap (标签 的标题显示方式) 。本节中我们只是讲述了部分标签控 件的属性,其他属性可以在 VB 的帮助文件中查找到。 3、大家在学习过程中一定会疑惑,为什么在属性设置 时, “=” 右边有时使用 "" ,有时又不使用 "" 。不 知大家注意到没有,我们在使用 "" 时,是因为引号里 面的内容是字符串,如"隶书"、"Times New Roman", 等等。 4、字符的大小写问题:初学者还常常疑惑,字母什么 时候应该大写,什么时候应该小写?其实,大写小写在 VB 程序中都是一样的,但为了让程序编写得更为规 范,程序可读性更高,英文单词的第一个字母一般都要 大写,如 Visible 、Name ,等等; 控件的命名也遵循以上原则, 不同的是, 命名都是由 “控 件类型名+具体名字”组成的,控件类型名的第一个字 母要大写,具体名字的第一个字母要大写,如 LblShow 、CmdShow 、LblChange ,等等。 5、程序代码的规范:上面有这样的例子: Private Sub CmdShow_Click() LblShow.Caption = "跟我来学 VB 神童教程" End Sub Private Sub CmdShow_Click()代表一个过程,共由两部 分组成, CmdShow 代表 CmdShow 这个按钮, Click 代

第 7 页 共 42 页

图三 也可以在程序中动态修改,程序代码规则: vb 神童教程第二章第二节 神童教程第二章第二节——TextBox 控件 在 Visual Basic 操作界面中,TextBox(文本框)控 文本框控件名.Text = "欲显示的文本内容" 件所代表的图标如图一: 如要在一个名为 TxtFont 的文本框控件中显示“隶书” 字样,那么输入代码: TxtFont.Text = "隶书" 习题一:创建一个文本框(TxtContent)用来显示文本; 按钮一(Cmd1) ,点击时文本框内容变为“跟我来学 第 8 页 共 42 页

表这个按钮的触发事件。 以此类推,Private Sub LblShow_DbClick ()也代表一个 过程,LblShow 是个标签,DbClick 是双击事件。 另外,Private 意为“私有” ,表明这个事件过程的类型; 此外还有 Public 即“公有”事件。 Sub 表明这个过程是“子程序” ,若干个“子程序”共 同组成最终的应用程序。 ()里面是用来装参数的,关于参数,我们以后讲述,如 果没有参数,()里面为空。 四、答案区: 第一题: 第一个按钮的点击事件: Private Sub CmdChange1_Click() LblShow.BorderStyle = 1 End Sub 第二个按钮的点击事件: Private Sub CmdChange2_Click() LblShow.BorderStyle = 0 End Sub 第二题: 按钮 1: Private Sub Cmd1_Click() LblShow.FontName = "隶书" End Sub 按钮 2: Private Sub Cmd2_Click() LblShow.FontSize = 13 End Sub 按钮 3: Private Sub Cmd3_Click() LblShow.FontBold = True End Sub 第三题: 按钮 1: Private Sub Cmd1_Click() LblShow.Visible = False End Sub 按钮 2: Private Sub Cmd2_Click() LblShow.Visible = True End Sub

图一 TextBox 控件主要用来显示文本或用来输入文本,如 Windows 登陆时的“口令”窗口,或者记事本的整个编 辑区域。 双击工具箱中的文本框控件或者单击文本控件, 然后用 鼠标在 VB 的工作区域拖拉,就可以创建文本框了。 如图二:

图二 文本框控件的默认名称为 TextX (X 为 1、 3, 2、 等等) , 命 名 规 则 为 TxtX ( X 为 用 户 自 定 义 的 名 字 , 如 TxtShow、TxtFont、TxtColor ,等等) 一、文本框控件的主要属性: 1、Text(文本)属性: 本控件最重要的属性,用来显示文本框中的文本内容, 可以在界面设置时指定,如图三:

VB 神童教程” ;按钮二(Cmd2) ,点击时文本框内容清 空(也就是没有内容) 。 答案:见答案区。 2、SelText(选中文本)属性: 本属性返回或设置当前所选文本的字符串, 如果没有选 中的字符,那么返回值为空字符串即""。 请注意,本属性的结果是个返回值,或为空,或为选中 的文本。 一般来说, 选中文本属性跟文件复制、 剪切等剪贴板 (在 VB 中,剪贴板用 Clipboard 表示)操作有关,如要将 文本框选中的文本拷贝到剪贴板上: Clipboard.SetText 文本框名称.SelText(注意,本行没有 表示赋值的等号。 ) 要将剪贴板上的文本粘贴到文本框内: 文本框名称.SelText = Clipboard.GetText(注意,本行有 表示赋值的等号。 ) 例:一个文本框(TxtContent) ,按钮一(CmdCopy)用 于复制文本框中的选中文本;按钮二(CmdPaste)用于 将剪贴板上的内容粘贴到文本框内。 按钮一: Private Sub CmdCopy_Click() Clipboard.SetText TxtContent.SelText End Sub 按钮二: Private Sub CmdPaste_Click() TxtContent.SelText = Clipboard.GetText End Sub 3、SelStart 与 SelLength 属性: SelStart ,选中文本的起始位置,返回的是选中文本的 第一个字符的位置。 SelLength ,选中文本的长度,返回的是选中文本的字 符串个数。 例如:文本框 TxtContent 中有内容如下: 跟我一起学习 VB 神童教程 假设选中“一起学习”四个字,那么,SelStart 为 3 , SelLength 为 4 。 4、MaxLength(最大长度)属性: 本属性限制了文本框中可以输入字符个数的最大限度, 默认为 0 ,表示在文本框所能容纳的字符数之内没有 限制,文本框所能容纳的字符个数是 64K ,如果超过 这个范围,则应该用其他控件来代替文本框控件。 这跟 Windows 中用记事本打开文件一样, 当文件过大, 系统会自动调用写字板来打开文件,而不是用记事本。 文本框控件 MaxLength 属性既可以在界面设置过程中 予以指定,如图四:

图四 也可以在设计时予以改变,代码如下: 文本框控件名.Maxlength = X (X 为阿拉伯数字, 10、 如 20、57,等等) 。 5、MultiLine(多行)属性: 本属性决定了文本框是否可以显示或输入多行文本, 当 值为 True , 文本框可以容纳多行文本; 当值为 False , 文本框则只能容纳单行文本。 本属性只能在界面设置时指定, 程序运行时不能加以改 变。如图五:

图五 6、PasswordChar(密码)属性: 本属性主要用来作为口令功能进行使用。例如,若希望 在密码框中显示星号,则可在“属性”窗口中将 PasswordChar 属性指定为 “*” 。这时,无论用户输 入什么字符,文本框中都显示星号。如图六:

图六 在 VB 中,PasswordChar 属性的默认符号是星号,但 你也可以指定为其他符号。但请注意,如果文本框控件 第 9 页 共 42 页

的 MultiLine(多行)属性为 True ,那么文本框控件 的 PasswordChar 属性将不起作用。 习题二: 一个文本 框 (TxtPassword) PasswordChar 属性指定为星号 , “*” ; 一个按钮 (CmdShow) 另外还有一个标签 ; (LblShow) , 在初始状态下,Caption 为空。程序目的在于,点击 CmdShow 按钮,LblShow 能显示文本框控件中输入的 密码。 答案:见本节后面的答案区。 7、ScrollBars(滚动条)属性: 本属性可以设置文本框是否有滚动条。当值为 0 ,文 本框无滚动条;值为 1 ,只有横向滚动条;值为 2 , 只有纵向滚动条;值为 3 ,文本框的横竖滚动条都具 图八 有。如图七: 程序如下: 文本框: Private Sub TxtContent_GotFocus() TxtContent.Text = "大家好,课程还难吗" End Sub Private Sub TxtContent_LostFocus() TxtContent.Text = "" End Sub Private Sub TxtContent_Change() LblShow.Caption = "标签的作用大家还清楚吗" End Sub 图七 三、知识点: 8、Locked(锁定)属性: 当值为 False ,文本框中的内容可以编辑;当值为 1、请记住,Clipboard 指的是 Windows 剪贴板,剪贴 True ,文本框中的内容不能编辑,只能查看或进行滚 板最常用的操作是所选文本的拷贝与粘贴。 拷贝: 动操作。 Clipboard.SetText 文本框名称.SelText 二、文本框控件的事件: 除了 Click、DbClick 这些不常用的事件外,与文本框 粘贴: 相关的主要事件是 Change、 GotFocus、 LostFocus 事件。 文本框名称.SelText = Clipboard.GetText 1、Change 事件: 2 、 Multiline 属 性 为 True 时 , 文 本 框 控 件 的 当用户向文本框中输入新内容, 或当程序把文本框控件 PasswrodChar 属性不起作用。 的 Text 属性设置为新值时,触发 Change 事件。 3、如果要让文本框的内容自动换行,只需取消文本框 2、GotFocus 事件: 的横向滚动条就行了。 本事件又名“获得焦点事件” 。所谓获得焦点,其实就 四、答案区: 是指处于活动状态。在电脑日常操作中,我们常常用 习题一: Alt+Tab 键在各个程序中切换,处于活动中的程序获得 按钮一: 了焦点,不处于活动的程序则失去了焦点(LostFocus) Private Sub Cmd1_Click() 。 3、LostFocus 事件: TxtContent.Text = "跟我来学 VB 神童教程" 失去焦点, 详情如上。 例子: 一个文本框 (TxtContent) End Sub , 默认状态下内容为空;当获得焦点时,文本框内容显示 按钮二: ————“大家好,课程还难吗”字样;当失去焦点, Private Sub Cmd2_Click() 文本框回到初始状态。 另外再创建一个标签 (LblShow) TxtContent.Text = "" , 当用户试图向文本框输入文本或改变文本框本来的文 End Sub 本时,标签显示“标签的作用大家还清楚吗”字样。 习题二: 界面如图八: 按钮: Private Sub CmdShow_Click() LblShow.Caption = TxtPassword.Text 第 10 页 共 42 页

End Sub

vb 神童教程第二章第三节 神童教程第二章第三节——综合示例一 综合示例一
在前面两节里,我们学到了 VB 的操作方法,以及 Label 与 TextBox 控件的使用方法, 现在我们用这两节 学到的知识来做一个简单的文本编辑器。 一、程序最终目的: 用户可以在程序的编辑窗口输入文本; 对输入的文本可 以进行复制、粘贴、清除操作;另外,还能在两个标签 上分别显示选中文本的起始位置、选中文本的长度。 二、界面设置: 根据程序的要求,我们需要制作一个文本框控件 (TxtContent) ,它将做为程序的输入窗口;另外还有四 个 按 钮 , 分 别 是 复 制 按 钮 ( CmdCopy ) 粘 贴 按 钮 、 (CmdPaste) 、清除按钮(CmdClear) 、退出程序按钮 (CmdQuit) 此外, ; 还需要两个用来显示所选文本起始 位置的标签一 (LblStart) 和显示所选文本长度的标签二 (LblLength) 。 最终界面如图一:

图一 请大家仿照图一制作。 三、属性设置: 如图一所示, 但请注意, 文本框控件的 Multiline (多行) 属性要设置为 True ,这样,文本框才能自动换行。如 图二:

文本前点击鼠标,按下左键不放,拖动鼠标直到选择文 本的结束处,最后松开鼠标。这说明,松开鼠标代表着 文本选择的结束,从而应该在文本框的鼠标弹起事件 (MouseUp) 中书写代码, 以改变两个标签的标题。 具 体代码如下: Private Sub TxtContent_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) '括号中这一长串 内容大家不必管它,这主要是产生位移时的坐标变动。 LblStart.Caption = "起始位置:" & TxtContent.SelStart LblLength.Caption = " 文 本 长 度 : " & TxtContent.SelLength End Sub 注意:这个 “&”符号表示将两个字符串连接起来。另 外如: A & B ,结果是 AB ;ABC & EFG ,结果是 ABCEFG ,等等。 2、复制按钮的点击事件: Private Sub CmdCopy_Click() Clipboard.SetText TxtContent.SelText End Sub 3、粘贴按钮的点击事件: Private Sub CmdPaste_Click() TxtContent.SelText = Clipboard.GetText End Sub 4、清空按钮的点击事件: Private Sub CmdClear_Click() TxtContent.Text = "" End Sub 5、退出程序按钮的点击事件: Private Sub CmdQuit_Click() End 'End 在 VB 中, 代表程序结束, 用它可以直 接退出程序。 End Sub 五、运行调试: 按 F5 键,或者点按运行按钮,这个简单的文本编辑器 可以用了吗? 六、控件的一些基本操作: 在 VB “菜单栏”中有一个“格式”命令,通过它提 供的一些功能可以让我们的工作事半功倍。 1、对齐: 分别是纵向对齐的“左对齐”“居中对齐”“右对齐” 、 、 ; 横向对齐的“顶端”“中间”“底端”对齐;以及面向 、 、 网格的“网格对齐” 。它们的功能非常简单,你只需随 意绘制几个控件,然后选择它们,再试着使用相关命令 就能掌握了。如图三是随意绘制的程序界面:

图二 四、程序书写: 1、文本框(TxtContent)的鼠标事件: 对文本的选择,可以理解为这样的过程:先在欲选择的 第 11 页 共 42 页

命 名 规 则 为 CmdX ( X 为 用 户 自 定 义 的 名 字 , 如 CmdCopy、CmdPaste ,等等) 。 一、CommandButton 的主要属性: 1、Cancel(取消)属性: 当一个按钮的 Cancel 属性设置为 True 时,按 ESC 键与单击此命令按钮的作用相同,因此,这个命令按钮 被称为取消按钮。 在一个窗体中,只允许一个命令按钮的 Cancel 属性为 True 。如图二:

图三 全部选中后,使用“左对齐”的结果如图四:

图二 2、Default(默认)属性: 当一个按钮的 Default 属性设置为 True 时,按回车键 与单击此命令按钮的作用相同,因此,这个命令按钮被 称为默认按钮。与 Cancel 的设置一样, 在一个窗体中, 图四 只允许一个命令按钮的 Default 属性设置为 True ,如 也许你要问, 这个对齐是以哪一个控件做为参照物的? 图三: 再仔细看看图三,那个 Command1 按钮四周是八个实 心的黑色小点,而其他控件则是白色的小点,现在你知 道了吧, 正是以 Command1 按钮为参照物进行对齐的, 也就是说你最后选择的那一个控件。 2、统一尺寸: 以某个控件为参照物,统一其他控件的大小尺寸。 3、水平间距与垂直间距: 调整某几个控件的水平间距或垂直间距。 活用上面几个操作,将使你的工作事半功倍! 图三 在 Visual Basic 操作界面中,CommandButton(命令按 3、Caption(标题)属性: 钮)控件所代表的图标如图一: 跟其他控件的 Caption 属性一样, 都用来显示控件标题 的属性。这里要强调的是,作为按钮控件,用户可以给 按钮控件的 Caption 指定快捷方式。 方法是在按钮 Caption 属性中欲作为快捷键的字母前 加上一个 “&” 符号,程序运行时,该字母的下面会 自带一条下划线,同时按下 Alt 键和带有下划线的字 母,功效相当于用鼠标点击该按钮。如图四: 图一 CommandButton 控件在程序中主要作为按钮进行使 用。默认的名称为 CommandX(X 为 1、2、3,等等) , 第 12 页 共 42 页

vb 神童教程第二章第四节 神童教程第二章第四节——CommandButton 控件

CmdFalse.Enabled = True CmdEnable.Enabled = False End Sub 按钮二: Private Sub CmdFalse_Click() CmdFalse.Enabled = False CmdEnable.Enabled = True End Sub 5、Style(类型)与 Picture(图片)属性: 图四 也许你想让应用程序的操作界面更美观一点, 也许你想 4、Enabled(可用)属性: 在某个按钮上添加幅小图片,那么,你就得使用到本控 本属性决定了控件是否可用的问题。当值为 False ,按 件的 Style 与 Picture 属性。 钮在程序运行时呈灰色,不能响应用户的鼠标动作;只 铵钮控件共有两种 Style ,一种是标准型(Standard) , 有当值为 True ,按钮才能使用。 本属性可以在设置 VB 中用 VbButtonStandard ,或者 0 表示;另外一种 界面时予以指定,如图五: 是图形型(Graphical) ,VB 中用 VbButtonGraphical , 或者 1 表示。 Style 属性可以在界面设置过程中予以 指定,如图七:

图五 也可以在程序中修改,代码如下: 按钮控件名 称.Enabled = True/False 例一: 两个命令按钮,按钮一(CmdEnable)初始状态为可用, 按钮二(CmdFalse)初始状态不可用。点击按钮一,按 钮二变为可用,按钮一变为不可用;点击按钮二,按钮 一变为可用,按钮二变为不可用。 程序界面如图六:

图七 也可以在程序中改变,代码如下: 按钮名称.Style = VbButtonStandard/VbButtonGraphical 或者:按钮名称.Style = 0/1 只有当按钮的 Style 设置为 Graphical 类型时,按钮的 Picture 属性才起作用。本属性能在指定的按钮上添加 图片。 可以在界面设置过程中为按钮指定图片,如图八:

图六 程序代码如下: 按钮一: Private Sub CmdEnable_Click()

图八 也可以在程序中进行指定,代码如下: 按钮名称.Picture = "图形文件所在的路径与文件名",例 如:CmdPicture.Picture = "D:\image\01.jpg" 二、CommandButton 的事件: 第 13 页 共 42 页

命令按钮最常用的事件是鼠标点击(Click)事件,当点 击按钮时,犹如发出了一道命令,而这也正是“命令按 钮”这个说法的由来。

vb 神童教程第二章第五节 神童教程第二章第五节——单选与复选控件 单选与复选控件
在 Visual Basic 中, 单选与复选按钮控件主要作为选项 提供给用户选择。不同的是,在一组选择按钮中,单选 控件只能选择一个, 其他单选控件自动变为未被选中状 态;而在一组复选按钮中,可以选定任意数量的按钮。 一、单选控件(OptionButton)与复选控件(CheckBox) 的主要属性: 单选控件默认名称为 OptionX(X 为阿拉伯数字 1、2、 3,等等) ,起名规则为 OptX(X 为用户自定义名字, 如 OptRed、OptArial,等等) ;复选控件默认名称为 CheckX(X 为 1、2、3,等等) ,起名规则为 ChkX(X 为用户自定义名字,如 ChkName、ChkRed ,等等) 。 在 VB 操作界面中,单选控件与复选控件的图标如图 一所示:

图一 以前讲到的大多数属性都适用于单选与复选控件,包 括:Caption、Enabled、Font(FontBold、FontItalic、 FontName,等等) 、Name、Height ,等等,此处不再 赘述。 Value 属性是单选与复选控件最主要的属性,但单选与 复选控件的 Value 值有些微的差别。 单选控件: 选中时,Value 值为 True ;未被选中,Value 值为 False 。 复选控件: 选中时,Value 值为 1 ;未被选中,Value 值为 0 ; 禁止对该按钮进行选择, Value 值为 2 。 请大家注意,单选控件与复选控件的 Value 值是不同 的,而这是初学者最容易混淆的。 二、单选按钮与复选按钮的事件: 这两种控件最主要的事件是 Click 事件,当选中时, Value 值变为 True 或者 1 ,控件也自动变为选中状 态。 三、单选按钮程序举例: 有如图二这样一个程序:

图二 文本框(TxtContent)显示预设的字样;单选按钮一 (OptArial) 单击此按钮可以将文本框里显示的字样改 , 变成 Arial 字体;单选按钮二(OptModern) ,单击此按 钮能将文本框里显示的字样改变成 Modern 字体。 1、单选按钮一: Private Sub OptArial_Click() TxtContent.FontName = "Arial" End Sub 2、单选按钮二: Private Sub OptModern_Click() TxtContent.FontName = "Modern" End Sub 四、复选按钮的判断过程: 复选按钮的使用跟单选按钮相似, 但由于一次可以选择 多个复选按钮, 所以复选按钮的选择比单选按钮多了一 个判断过程。 这 个 判 断 过 程 在 VB 中 可 以 用 If··Then··ElseIf··End If 语句完成。 · · · If··Then··ElseIf··End If 是 VB 中的块结构条 · · · 件语句,主要用来针对不同的情况,让应用程序做出不 同的反应。 语句功能如下: If 假设情况一 Then 假设情况一成立时执行的语句块一 [ElseIF 假设情况二 Then 假设情况二成立时执行的语句块二] [ElseIf 假设情况三 Then 假设情况三成立时执行的语句块三] ··· ··· [Else 所有条件都不成立时要执行的语句块] End If 上面的语句块含义为: 如果 “情况一” 成立, 则执行 “语 句块一” ;否则如果“情况二”成立,则执行“语句块 二”··· 如果所有情况都不成立, ···; 则执行 Else 之后 的语句块并最后跳出判断过程。

第 14 页 共 42 页

例: 假设输入学生成绩(Score) ,如果分数小于 60 ,标签 (LblShow)显示“成绩不及格” ;如果分数大于 90 , 标签显示“成绩优秀” ;如果分数介于两者之间,标签 显示“成绩优良” 。 If Score < 60 Then LblShow.Caption = "成绩不及格" ElseIf Score > 90 Then LblShow.Caption = "成绩优秀" Else LblShow.Caption = "成绩优良" End If 有几点必须加以注意: (1) 、在上面的语句块中,ElseIf 之间没有空格,如果 有空格即 Else If ,块结构则不成立。Else If 这种形式 只能在单行结构条件语句中成立, 而不能在块结构条件 中成立。 (2) 、执行语句块的程序代码不能紧跟 Then ,必须放 到下一行中,这是块状结构的规定。 (3) 、在块结构判断语句中,ElseIf 子句的数量没有限 制,可以根据需要加入任意多个 ElseIf 子句。 (4) 、ElseIf 与 Else 都是可选的,最简单的判断语句 块形式如下: If 条件 Then 要执行的语句块 End If 如:If Score < 60 Then LblShow.Caption = "成绩不及格" End If (5) 、块结构语句必须以 If 开始,以 End If 结束。 五、复选按钮举例: 上面我们学习了复选按钮的判断过程, 现在进入实例学 习。 有如图三这样一个应用程序:

选按钮三(ChkUnderline)可以给文本框里面的文字加 上下划线。 复选按钮一: Private Sub ChkBold_Click() If ChkBold.Value = 1 Then TxtContent.FontBold = True Else TxtContent.FontBold = False End If End Sub 复选按钮二: Private Sub ChkItalic_Click() If ChkItalic.Value = 1 Then TxtContent.FontItalic = True Else TxtContent.FontItalic = False End If End Sub 复选按钮三: Private Sub ChkUnderline_Click() If ChkUnderline.Value = 1 Then TxtContent.FontUnderline = True Else TxtContent.FontUnderline = False End If End Sub 联想: 复选按钮是不是非得经过这种选择判断?能不能如单 选按钮那样直接使用呢?这是许多初学者, 包括笔者自 己,曾经感到疑惑的地方。 (虽然现在看来它们的区别 是如此之大) 还是上面这个例子,假设复选按钮一不经过判断,而直 接在点击事件中输入代码: Private Sub ChkBold_Click() TxtContent.FontBold = True End Sub 那么你会发现, 复选按钮一经点击就不能取消字体加粗 的效果了;而实际上,复选按钮一的功能是,点击一次 即选中时,字体加粗;点击第二次即取消选择,字体不 再加粗;以此类推。 六:知识点: 1、切记,单选按钮与复选按钮的 Value 值是不同的。 单选按钮: 选中时,Value 值为 True ;未被选中时,Value 值为 图三 False 。 文本框(TxtContent)显示预设的字样;复选按钮一 复选按钮: (ChkBold)可以将文本框里面的字变为粗体;复选按 选中时,Value 值为 1 ;未被选中时,Value 值为 0 ; 钮二(ChkItalic)可以将文本框里面的字变为斜体;复 禁止选择,Value 值为 2 。 第 15 页 共 42 页

你 可 以 试 验 一 下 , 将 复 选 按 钮 的 Value 值 分 别 用 True/False 代替,看一下会出现什么问题。 2、两种选择按钮都针对 Click 事件做出反应,但单选 按钮比较简单,只需直接输入代码即可;复选按钮比较 复杂,需经过条件判断后再做出反应。切记! 3、 If··Then··ElseIf··End If ,只是条件判断方 · · · 法的一种,以后我们还会学到其他的方法。

vb 神童教程第二章第六节——综合示例二 神童教程第二章第六节 综合示例二
在 前 面 两 节 中 , 我 们 学 习 了 命 令 按 钮 (CommandButton) 、单选按钮(OptionButton) 、复选 按钮(CheckBox)的使用,本节将就前两节的知识做个 总结。 一、程序目的: 通过选项按钮的选择,对所选文本进行定制。 二、程序界面: 程序界面如图一:

图一 一个文本框 (TxtContent) 显示 , “Learning Visual Basic” 字样;三个单选按钮:按钮一(OptArial)让文本字体 变为 Arial 类型;按钮二(OptModern)让文本字体变 为 Modern 类型;按钮三(OptRoman)让文本字体变 为 Times New Roman 类型;三个复选按钮:按钮一 (ChkBold) 让文本字体变为黑体; , 按钮二 (ChkItalic) , 让文本字体变为斜体字;按钮三(ChkUnderline) ,给文 本增加下划线。另外,还有一个退出按钮(CmdQuit) , 作用在于退出程序。 三、属性设置: 根据图一进行属性设置。 四、书写程序: OptArial 按钮: Private Sub OptArial_Click() TxtContent.FontName = "Arial" End Sub OptModern 按钮: 图二 Private Sub OptModern_Click() 在图二中,既可以选择性别,又可以选择年级,它们是 TxtContent.FontName = "Modern" 通过选项框分组控件(Frame)得以实现的。 End Sub 简单地说,选项框控件是将不同的选项分类,在某一类 第 16 页 共 42 页

OptRoman 按钮: Private Sub OptRoman_Click() TxtContent.FontName = "Times New Roman" End Sub ChkBold 按钮: Private Sub ChkBold_Click() If ChkBold.Value = 1 Then TxtContent.FontBold = True Else TxtContent.FontBold = False End Sub ChkItalic 按钮: Private Sub ChkItalic_Click() If ChkItalic.Value = 1 Then TxtContent.FontItalic = True Else TxtContent.FontItalic = False End Sub ChkUnderline 按钮: Private Sub ChkUnderline_Click() If ChkUnderline.Value = 1 Then TxtContent.FontUnderline = True Else TxtContent.FontUnderline = False End Sub CmdQuit 按钮: Private Sub CmdQuit_Click() End End Sub 五、分组控件(Frame)的学习: 从前面学到的知识我们知道,单选按钮只能多选一,那 么,下面这种分组选项的选择又该如何制作呢?如图 二:

里只能多选一,但多个类别的交叉使用,可以完成比较 表项中的内容。可以在界面设置时直接输入内容,如图 复杂的多项选择。 三: 不仅仅如此,我们还可以将单选按钮、多选按钮分组, 不同组内的操作不会影响其他组的操作。如图三:

图三 分组控件的制作方法: 先在窗体上绘制合适大小的框架, 然后点选单选控件或 多选控件,最后将鼠标移到框架内并拖拉出选项按钮。 注意: 请不要使用双击选择按钮控件然后将其拖动到分 组框内的办法,否则,分组会失败。

vb 神童教程第二章第七节 神童教程第二章第七节——列表框控件 列表框控件
Visual Basic 提供了列表框控件(ListBox)以供用户进 行多个项目的选择。在工具箱面板上,列表框控件的图 标如图一所示:

图一 默认的列表框控件名为 ListX (X 为阿拉伯数字 1、 2、3,等等) ,规则的命名方式为:LstX(X 为用户自 定义的名字,如 LstName、LstUser,等等) 。 一、列表框控件的主要属性: 列表框中可以有多个项目供选择, 用户通过单击某一项 选择自己所需要的项目,如果项目太多,超出了列表框 设计时的长度,则自动增加竖向滚动条,如图二:

图二 除了一些常见的诸如 Font 、Height、Left、Width、 Enabled、 Name 等属性外, 列表框还有一些特殊的属性: 1、List(列表)属性: List 是列表框最重要的属性之一, 其作用是罗列或设置

图三 在程序运行时,列表框中所有的选项,都可以通过 List(下标值) 的形式表示。比如列表框中的第一项,用 List(0)表示,列表框中的第二项,用 List(1)表示,列表 框中的第十项,用 List(9)表示,以此类推。 大家注意,列表框中的第一项,是 List(0) ,而不是 List(1) 。 <1>、 List() 属性的使用是非常灵活的, 比如我们要从 如图二的列表框(Lst1)中取出第三项内容,可以用下 面的代码做到:A$ = Lst1.List(2) 其中,A 是一个变量;$ 指明了这个变量的类型:字符 串 型;这 句话的 意思是: 将 Lst1 列 表框 中第三 项 (List(2))取出来然后赋值给字符串变量 A 。 象上面这种赋值办法,在 VB 中是非常普遍的,又如 以前我们学到的: LblShow.Caption = "Visual Basic",这句话是指将 Visual Basic 这个字符串赋值给 LblShow 标签控件并作为其 标题。 紧接上面的内容, 假设我们用一个标签显示出刚才取出 的表项: LblShow.Caption = A$ 那么显示的结果正是我们取出的选项。 可见, 取出某个列表框中的某一表项并将其赋值给某个 变量,代码如下: 字符串变量 = 列表框名称.List(X) ,其中,X 是下标。 <2>、通过 List() 改变原有表项:假设我们要将如图 二的列表框中第三项内容改为“跟我学 VB” ,只需输 入下面的代码即可: Lst1.List(2) = "跟我学 VB" 上句话的意思是将 “跟我学 VB” 字符串赋值给 Lst1 并 作为其第三项的内容。 结果如图四:

第 17 页 共 42 页

图四 可见,要修改某个列表框中某一选项: 列表框名称.List(X) = "欲修改成的内容" ,其中,X 是 下标。 2、ListCount 属性: 本属性返回列表框表项数量的数值, 只能在程序运行时 起作用。比如:一个有着四种选项的列表框,那么 ListCount 就为 4 ;一个列 表框有五 个选项,那 么 ListCount 就为 5 。 返回一个列表框的表项数量值并将其赋值给某个变量, 代码如下: 数值型变量 = 列表框名称.ListCount 比如要返回图二列表框的 ListCount: X% = Lst1.ListCount ,其中,X 是变量,% 表示 X 是 整数类型的变量。 3、ListIndex(索引)属性: 本属性用来返回或设置控件中当前选择项目的索引号, 只能在程序运行时使用。第一个选项的索引号是 0 , 第二个选项的索引号是 1 ,第三个选项的索引号是 2 ,依此类推,ListCount 始终比最大的 ListIndex 值 大 1 。 当列表框没有选择项目时, ListIndex 值为 -1 。 在程序中设置 ListIndex 后,被选中的项目呈反相显 示,如图五:

择这一项,那么又应该如何访问这第三项呢? 代 码 如 下 : A$ = Lst1.List(Lst1.ListIndex) 此 时 , Lst1.ListIndex 等同于 2 。 仔细想一想,为何要如此书写? 4、Columns(列)属性: 本属性用来确定列表框的列数,当值为 0 时,所有项 目呈单列显示;当值为 1 或者大于 1 ,项目呈多列显 示。Columns 属性只能在界面设置时指定。如图六:

图六 默认状态时,如果项目的总高度大于列表框的高度,那 么列表框右边会自动增加一个垂直滚动条, 用来上下移 动列表框。 5、MultiSelect(多重选择)属性: 本属性决定了选项框中的内容是否可以进行多重选择, 只能在界面设置时指定,程序运行时不能予以修改。如 图七:

图七 MultiSelect 共有三个值:0 ,不允许多项选择,如果选 择了一项就不能选择其他项;1 ,允许多重选择,但功 图五 能不如 2 ,可以用鼠标或空格选择;2 ,功能最强大 在列表框控件的所有属性中,本属性是非常重要的,因 的多重选择,可以结合 Shift 键或 Ctrl 键完成多个表 为一个列表,事先你并不知道用户将要选择哪一条项 项的多重选择。 方法是: 单击所要选择的范围的第一项, 目,这时,只有根据 ListIndex 返回的数值,我们才能 然后按住 Shift 键,再单击选择范围最后一项。 让程序针对用户的选择做出适当的反应。 6、Style(类型)属性: 返回 ListIndex 的代码如下: 本属性决定了列表框的外观,共有两个值:1 , X% = 列表框名称.ListIndex Standard ,即为标准型,如图八: 联想:根据前面的知识我们知道,要取出第三项内容, 代码如下: A$ = Lst1.List(2) 假设现在选中的是第三项, 但我们事先不知道用户要选 第 18 页 共 42 页

图八 2 ,CheckBox ,复选框型,如图九:

图九 本属性只能在界面设置时确定。 7、Selected(选中)属性: 本属性返回或设置在列表框控件中某项目是否选中的 状态。选中时,值为 True ;未被选中,值为 False 。 代 码 规 则 如 下 : 列 表 框 名 称 .Selected( 索 引 值 ) = True/False 注意,索引号其实是项目的下标值,如果是第三项,那 么索引值是 2 ,如果是第十项,那么索引值是 9 ,以 此类推。 例一: 有如图十这样一个应用程序:

图十 列表框(LstName)中是人物的名称,用户选择不同的 名字,下面的标签(LblShow)自动显示此人的相关信 息。 源代码如下: Private Sub LstName_Click() If LstName.Selected(0) = True Then

LblShow.Caption = "马拉多纳是阿根廷的球星" ElseIf LstName.Selected(1) = True Then LblShow.Caption = "贝肯鲍尔是德国的球星" ElseIf LstName.Selected(2) = True Then LblShow.Caption = "罗纳尔多是巴西的球星" Else LblShow.Caption = "贝克汉姆是英国的球星" End If End Sub 本程序是根据用户选择的不同, 在标签按件中显示不同 的 信 息 ; 另 外 , 我 们 用 到 了 前 面 学 到 的 If ··Then·· ElseIf·· End If 语法。 · · · 8、SelCount(选中项目数量) : 只有当 MultiSelect 属性值为 1 或 2 时,本属性才起 作用,用来读取列表框中所选项目的数目,通常与 Selected 一起使用,以处理控件中的所选项目。 二、列表框控件的主要事件: 列表框控件主要接收 Click 与 DblClick ,如例一。 三、列表框控件的方法: 1、增加项目:AddItem 用 AddItem 可以为列表框增加项目,代码规则如下: 列表框名称.AddItem 欲增项目[,索引值] 其中,索引值是可选项,是指欲增项目放到原列表框中 的第几项,如放在第三项,那么索引值是 2 ,放在第 五项,索引值则是 4 。 假设我们要在如图十这样的程序中增加项目: LstName.AddItem "郝海东",4 2、清除所有:Clear 用 Clear 可以清除列表框中所有的内容,代码如下: 列表框名称.Clear 3、删除选项:RemoveItem 此方法可以删除列表框中指定的项目,代码如下: 列表框名称.RemoveItem 索引值 其中,索引值是必须的,表示欲删除哪一个项目。 同样如图十的程序,假设我们要删除第三个项目,代码 如下: LstName.RemoveItem 2 联想:对于任意一个列表框,要删除已经选中的项目, 代码如下: 列表框名称.RemoveItem 列表框名称.ListIndex 比如:LstName.RemoveItem LstName.ListIndex 为什么这样写?请大家仔细想想。 四、知识点: 1、本节的难点在于 List() 、ListIndex ,请大家一定要 把它们吃透。 2、本节提到了变量,关于它们的详细情况,我们将在 以后学习,目前大家只需要知道,这里的变量只是个临 时工,主要用来储存一些临时数据。

第 19 页 共 42 页

vb 神童教程第二章第八节 神童教程第二章第八节——组合框控件 组合框控件
组合框控件(ComboBox)将文本框控件(TextBox) 与列表框控件(ListBox)的特性结合为一体,兼具文本 框控件与列表框控件两者的特性。 它可以如同列表框一 样,让用户选择所需项目;又可以如文本框一样通过输 入文本来选择表项。 组合框默认的名称是 ComboX(X 为阿拉伯数字 1、2、3 ,等等) ,规则的命名方式为:CboX(X 为用 户自定义的名字,如 CboName、CboColor ,等等) 。 组合框在 VB 工具箱面板中的图标如图一:

图三 当值为 2 ,组合框称为“下拉式列表框” (Dropdown ListBox) ,它的右边有个箭头,可供“拉下”或“收起” 操作。它不能识别 DblClick 及 Change 事件,但可识 别 Dropdown 、Click 事件,如图四:

图四 图一 综上所述,如果你想让用户能够输入项目,则应将组合 一、组合框控件的主要属性: 框设置成 0 或 1 , 如果只想让用户对已有项目进行选 列表框控件的大部分属性同样适合于组合框,此外,组 择,则应将组合框设置成 2 。 合框还有一些自己的一些属性: 2、Text(文本)属性: 1、Style(类型)属性 本属性值返回用户选择的文本或直接在编辑区域输入 组合框共有三种 Style : 的文本,可以在界面设置时直接输入,如图五: 当值为 0 ,组合框是“下拉式组合框” (DropDown Combo) ,与下拉式列表框相似,但不同的是,下拉式 组合框可以通过输入文本的方法在表项中进行选择, 可 识别 Dropdown 、Click、Change 事件,如图二:

图五 但要显示多个选项,不能简单地用 Text 属性指定,因 为后一选项会覆盖前面的选项,这时,常常要用到窗体 的载入事件。 (Form_Load) Form_Load 的意思是, 在打开窗口的同时, 将指定的内 图二 当值为 1 , 组合框称为 “简单组合框” Simple Combo) 容载入。详细情况见后面的窗体篇。 ( , 由可以输入文本的编辑区与一个标准列表框组成, 可识 二、组合框的事件: 别 Change 、DblClick 事件,如图三: 根据组合框的类型,它们所响应的事件是不同的。 例如, 当组合框的 Style 属性为 1 时, 能接收 DblClick 事件,而其他两种组合框能够接收 Click 与 Dropdown 事件;当 Style 属性为 0 或 1 时,文本框可以接收 Change 事件。 三、组合框的方法: 跟列表框一样,组合框也适用 AddItem 、Clear 、 RemoveItem 方法。 四、组合框举例: 有如图六这样一个应用程序: 第 20 页 共 42 页

图六 在名为 CboChoose 的下拉组合框中任意选择一种机 型,自动会在名为 LblShow 的标签上显示出来。 程序代码如下: 窗体: Private Sub Form_Load() CboChoose.AddItem "IBM" CboChoose.AddItem "AST" CboChoose.AddItem "Compaq" CboChoose.AddItem "联想" CboChoose.AddItem "长城" CboChoose.AddItem "东海" End Sub 下 拉 式 组 合 框 的 Click 事 件 : Private Sub CboChoose_Click() LblShow.Caption = "你的机型是:" & CboChoose.Text End Sub

vb 神童教程第二章第九节——综合示例三 神童教程第二章第九节 综合示例三
前面我们学了列表框控件(ListBox)与组合框控件 (ComboBox) ,本节将就它们制作一个简单的应用程 序。 一、程序界面:界面如图一

图一 二、程序目的: 两个列表框, 左列表框 (LstLeft) 罗列了一些歌手名字, 右列表框(LstRight)初始状态为空;点击向右按钮 (CmdRight) ,可以将左列表框中的指定选项移动到右

边列表框;点击全部向右按钮(CmdAllRight) ,可以将 左列表框中所有的内容搬到右列表框中; 点击向左按钮 (CmdLeft) 可以将右列表框中选定的表项移动到左列 , 表框中;点击全部向左按钮(CmdAllLeft) ,可以将右 列表框中的所有内容移动到左列表框中。 三、属性设置: 见图一,注意,列表框的 Style 都为 0 即标准类型。 四、程序代码: 1、窗体的载入事件(Form_Load) Private Sub Form_Load() LstLeft.AddItem "刘德华" LstLeft.AddItem "张学友" LstLeft.AddItem "郭富城" LstLeft.AddItem "黎 明" LstLeft.AddItem "谭咏麟" LstLeft.AddItem "梅艳芳" LstLeft.AddItem "张曼玉" End Sub 2、向右按钮的点击事件(CmdRight_Click) Private Sub CmdRight_Click() LstRight.AddItem LstLeft.List(LstLeft.ListIndex) LstLeft.RemoveItem LstLeft.ListIndex End Sub 3、全部向右按钮的点击事件(CmdAllRight_Click) Private Sub CmdAllRight_Click() LstRight.AddItem "刘德华" LstRight.AddItem "张学友" LstRight.AddItem "郭富城" LstRight.AddItem "黎 明" LstRight.AddItem "谭咏麟" LstRight.AddItem "梅艳芳" LstRight.AddItem "张曼玉" LstLeft.Clear End Sub 4、向左按钮的点击事件(CmdLeft_Click) Private Sub CmdLeft_Click() LstLeft.AddItem LstRight.List(LstRight.ListIndex) LstRight.RemoveItem LstRight.ListIndex End Sub 5、全部向左按钮的点击事件: (CmdAllLeft_Click) Private Sub CmdAllLeft_Click() LstLeft.AddItem "刘德华" LstLeft.AddItem "张学友" LstLeft.AddItem "郭富城" LstLeft.AddItem "黎 明" LstLeft.AddItem "谭咏麟" LstLeft.AddItem "梅艳芳" LstLeft.AddItem "张曼玉"

第 21 页 共 42 页

LstRight.Clear End Sub 五、注意事项: 1、窗体载入事件: 就是窗体打开时自动加载的信息, 也可以在界面设置时 通过左列表框的 List 属性设定。如图二:

End Sub 向左按钮: Private Sub CmdLeft_Click() If LstRight.SelCount > 0 Then LstLeft.AddItem LstRight.List(LstRight.ListIndex) LstRight.RemoveItem LstRight.ListIndex End If End Sub 看见了吧, 向左与向右按钮还得增加列表框中是否有表 项被选中的判断。 4、大家先移动左列表框中的一个项目到右列表框中, 然后再全部移过去,你又会发现什么样的问题呢? 这 时,你会发现右列表框的项目多了一项,而这多出来的 表项正是最先移过去的那个项目,那么,全部移动的按 钮还需要加以完善。如图四:

图二 2、无论是部分转移,还是全部移动,都要记着将本已 移动的表项在原有列表框中清除,如代码: LstLeft.RemoveItem LstLeft.ListIndex 如果不清除,那么表项移动后,原先的表项还在原处, 用户可能对同一表项多次选择。如图三

图三 3、第一个应用程序还没编写完,仔细看一下,哪里还 需要再编写?没错, 就是向左按钮与向右按钮的点击事 件还没完善,按照上面的程序,如果在初始状态下(也 就是没有选中任何表项) ,点击向左或向右按钮会产生 程序错误。 所以我们得在原来向左或向右按钮的事件 中增加判断过程,修改后的代码如下: 向右按钮: Private Sub CmdRight_Click() If LstLeft.SelCount > 0 Then LstRight.AddItem LstLeft.List(LstLeft.ListIndex) LstLeft.RemoveItem LstLeft.ListIndex End If

图四 解决办法很简单,在全部移动时,先清除目标列表框的 内容再进行移动,修改后的代码如下: 全部向右按钮: Private Sub CmdAllRight_Click() LstRight.Clear LstRight.AddItem "刘德华" LstRight.AddItem "张学友" LstRight.AddItem "郭富城" LstRight.AddItem "黎 明" LstRight.AddItem "谭咏麟" LstRight.AddItem "梅艳芳" LstRight.AddItem "张曼玉" LstLeft.Clear End Sub 全部向左按钮: Private Sub CmdAllLeft_Click() LstLeft.Clear LstLeft.AddItem "刘德华" LstLeft.AddItem "张学友" LstLeft.AddItem "郭富城" LstLeft.AddItem "黎 明"

第 22 页 共 42 页

LstLeft.AddItem "谭咏麟" LstLeft.AddItem "梅艳芳" LstLeft.AddItem "张曼玉" LstRight.Clear End Sub 5、 本节的程序只是为了让大家便于理解才这样编写的, 而最为科学、最为有效的编写方法,我们将在下一节讲 述。在开始下一节课程之前,大家可以将两个列表框的 Style 改成 1 即复选类型, 你会发现本节所编写的程序 又有很多问题了,该如何解决呢?下一节见!

用。 2、示例一: 编写一个程序, 用来计算 1 到 100 间所有整数的和是 多少。 (1) 、程序界面与控件属性: 程序界面与控件属性如图一,为了让大家看得更为清 楚,我们将标签控件的 BoderStyle 属性设为 1 。

vb 神童教程第二章第十节 神童教程第二章第十节——综合示例四 综合示例四
在上一节,我们制作了一个 Style 为 0 的列表程序, 现在我们来制作一个 Style 为 1 的列表程序。 虽然仅仅是 Style 的改变, 但整个程序发生了完全 的变化。本节中的程序更为科学,而且只需改动几行代 码,同样适合上一节的程序。 在 编 制 本 节 程 序 前 , 我 们 有 必 要 对 For ·· Next ··循环结构语句做个了解。 · · 一、For 循环语句: 在实际生活中,我们经常会遇到一些操作并不复杂,但 需要重复多次处理的情况,如人口统计、银行利率的计 算等,为此,Visual Basic 提供了循环语句来专门解决 此类情况。 循环语句的具体情况,我们将在以后的章节中阐述,本 节我们只是针对 For 循环语句做个大致的了解。 1、For ·· Next ··语句的一般格式: · · For 变量 = Start To End [Step] [需要循环的语句] [Exit For] Next 变量 说明: (1) 、For 后的“变量”与 Next 后的“变量”为同一 个, “变量”应该是数值类型的。 (2) 、Start 代表的是循环的初始值,End 代表的是循 环的终值。假设从 1 到 100 进行循环,那么,循环初 值是 1 ,终值是 100 ;假设从 1 到 50 进行循环, 那么初值是 1 ,终值是 50 。 (3) 、To 是循环中的关键字,表示从初值到终值的范 围,不能省略。 (4) 、Step 是步长值,代表变量的增量,既可以是正数 (递增循环) 也可以是负数 , (递减循环) 但不能为 0 , , 如果步长值为 1 即默认状态,可以省略不写。 (5) 、需要循环的语句,既可以是一个,也可以是多个 语句,但必须放在 For 与 Next 之间。 (6) 、Exit For:当程序执行到此处,自动退出本层循 环。 (7) 、需要循环的语句与 Exit For 都可以省略,这时 表示的是一个无内容的空循环,主要做为程序延迟使

图一 (2) 、程序功能: 用户点击“开始”按钮(CmdStart)开始计算,完成后 将结果用标签(LblShow)显示出来。 (3) 、书写代码: “开始”按钮的点击事件: Private Sub CmdStart_Click() x=0 For y = 1 To 100 x=x+y Next y LblShow.Caption = "最后的结果是:" & x End Sub 说明: (1) 、1 到 100 中所有整数的和可以这样来看:1+2 +3+··· ···+100 ,即 100 次相加,那么这重复的 100 次相加可以通过 For 循环来完成。 (2) 、程序中 y 只是用来决定循环次数的变量,通常 的,我们会利用其他变量来编写程序,这里的 X 就是 一个求和累加器,它的初值是 0 ,终值则是我们最后 需要的数值。 (3) 、X = X +y ,是指变量 X 与 y 相加后将新的值 赋给 X 。当 X 为初始的 0 时,y 进入第一次循环即 y = 1 ,X + Y = 1 ;系统将 X = 1 记录下来,然后进 入第二次循环即 y =2 ,X + Y = 3 (1 + 2) ,然后将 X = 3 记录下来并进入第三次循环,以此类推。这就将 1 +2+3+··· ···+100 的最终值算了出来。 (4) 、经过第一百次循环, 程序执行 Next y 后的语句, 即将最后结果用标签显示出来。

第 23 页 共 42 页

3、示例二: 计算 1 到 100 间所有奇数的和。 只需将上例中的“开始”按钮的循环程序加上步长值即 可。代码如下: Private Sub CmdStart_Click() x=0 For y = 1 To 100 Step 2 x=x+y Next y LblShow.Caption = "最后的结果是:" & x End Sub 二、列表程序二: 1、程序界面: 最终的程序界面如图二:

End Sub (2) 、向右按钮的点击事件(CmdRight) : Private Sub CmdRight_Click() Dim X As Integer While LstLeft.SelCount > 0 For X = 0 to LstLeft.LstCount - 1 If LstLeft.Selected(X) = True Then LstRight.AddItem LstLeft.List(X) LstLeft.RemoveItem X Exit For End If Next X Wend End Sub (3) 、全部向右按钮的点击事件(CmdAllRight) Private Sub CmdAllRight_Click() Dim X As Integer For X = 0 to LstLeft.ListCount - 1 LstRight.AddItem LstLeft.List(X) Next X LstLeft.Clear End Sub (4) 、以此类推,输入向左按钮(CmdLeft)与全部向 左按钮(CmdAllLeft)的点击事件,最后按 F5 键运行 程序。

vb 神童教程第二章第十一节 神童教程第二章第十一节——滚动条 滚动条
图二 跟上一节的内容相比, 带复选框的选择是通过勾选复选 项前面的复选框来确定一个表项是否被选中的, 它可以 一次选中多个表项并一次移动多个表项。 上一节的程序,一次只能移动一个表项。 2、前后两种程序的区别: 上一节的程序中,对单个表项进行移动,首先加入了是 否选中的判断,然后再进行移动;全部移动,首先对目 标框清零,再进行移动。它们虽然比较好理解,但程序 的有效性却不佳。 本节的程序,对单个与全部表项进行移动,都采用循环 法,可以一次移动多个表项。 3、程序代码: (1) 、窗体的载入事件(Form_Load)跟上一节一样: Private Sub Form_Load() LstLeft.AddItem "刘德华" LstLeft.AddItem "张学友" LstLeft.AddItem "郭富城" LstLeft.AddItem "黎 明" LstLeft.AddItem "谭咏麟" LstLeft.AddItem "梅艳芳" LstLeft.AddItem "张曼玉" 滚动条常常用来附在某个窗口上帮助观察数据或确定 位置, 也可以用来作为数据输入的工具。 在日常操作中, 我们常常遇到这样的情况:在某些程序中,如 Photoshop ,一些具体的数值我们并不清楚,如调色板 上的自定义色彩,这时,可以通过滚动条,用尝试的办 法找到自己需要的具体数值。 在 Visual Basic 中,滚 动条分为横向(HscrollBar)与竖向(VscrollBar)两种, 命 名 规 则 为 : HsbX 或 VsbX , 如 HsbShow 、 VsbShow ,等等。它们在工具箱上的图标如图一:

图一 选中滚动条按钮,把鼠标指针放到界面设计区,然 后拖动,画出符合自己要求的滚动条,或者直接双击该 按钮,自动在界面设计区生成默认大小的滚动条,如图 二所示:

第 24 页 共 42 页

图二 图四 一、滚动条控件的属性: 4、LargeChange(大改变)属性: 1、Max(最大值)与 Min(最小值)属性: 单击滚动条中滚动框前面或后面的部位时,引发 Value 滚动块处于最右边(横向滚动条)或最下边(竖向滚动 值按 LargeChange 设定的数值进行改变,如图五: 条)时返回的值就是最大值;滚动块处于最左边或最上 边,返回的值最小,如图三所示:

图三 Max 与 Min 属性是创建滚动条控件必须指定的属性, 默认状态下, Max 值为 32767 ,Min 值为 0 。本属 性既可以在界面设计过程中予以指定, 也可以在程序运 行中予以改变,如: HsbShow.Min = 3 HsbShow.Max = 30 2、Value(数值)属性: Value 属性返回或设置滚动滑块在当前滚动条中的位 置,如图三所示。 Value 值可以在设计时指定, 也可以在程序运行中改变, 如: HsbShow.Value = 24 3、SmallChange(小改变)属性: 当用户单击滚动条左右边上的箭头时,滚动条控件 Value 值的改变量就是 SmallChange,如图四:

图五 二、滚动条控件的事件: 与滚动条控件相关的事件主要是 Scroll 与 Change , 当在滚动条内拖动滚动框时会触发 Scroll 事件(但要 注意,单击滚动箭头或滚动条时不发生 Scroll 事件) , 滚动框发生位置改变后则会触发 Change 事件。Scroll 事件用来跟踪滚动条中的动态变化,Change 事件则用 来得到滚动条最后的值。 三、示例: 有如图六这样一个应用程序,当滚动条(HsbShow)的 滚动块发生位移时,下面的显示标签(LblShow)自动 显示滚动条当前的值;在拖动滚动框的过程中,显示标 签(LblShow)则会显示“拖动中……”字样。

第 25 页 共 42 页

图六 1、创建界面。 其 中 , HsbShow 的 Min 为 0 , Max 为 100 , SmallChange 为 5 ,LargeChange 为 10 。 2、双击滚动条(HsbShow) ,进入代码编写窗口: Private Sub HsbShow_Change() LblShow.Caption = " 滚 动 条 当 前 值 为 : " & HsbShow.Value End Sub 3、滚动条的拖动事件: Private Sub HsbShow_Scroll() LblShow.Caption = "拖动中……" End Sub

vb 神童教程第二章第十二节 神童教程第二章第十二节——综合示例五 综合示例五
有如图一这样一个应用程序,分别拖动红、绿、蓝三个 滚动框来决定文本框的背景色, 另外还有一个竖向滚动 条,可以用来控制文本框的大小。

图一 一、图像的着色问题: 自然界中千变万化的色彩, 在电脑上可以用红绿蓝三种 原色组合而成, 这也正是图像处理软件中 RGB 模式的 原理所在, 如黑色是由皆为 0 的红绿蓝三种颜色组成, 白色为皆为 255 的三原色合成,等等。 在 RGB 模式中,每种色彩最多有 255 种变化,也就

是说,只要 R 、G 、B 三种色彩都在各自的 255 范 围内,这种色彩就是有效的。 在 VB 中,也用 RGB 来作为色彩的描述,如文本框 的 背 景 色 为 白 色 , 则 表 示 为 : Text1.Backcolor = RGB(255,255,255)。 二、VB 中对象的初值储存问题: 在 VB 中,常常会对某个对象进行位置移动,或者动态 改变对象的尺寸,一般情况下,都会在程序调入后先对 原始数据进行一些存储, 以便发生位移或改变大小后能 恢复原样,而这一功能,是通过初值储存来完成的。 方法是,将原始数据,如坐标值、原始长宽高,等等, 赋值给某个变量, 最后通过变量的调用就能完成默认状 态的恢复。 三、程序设计: 1、创建如图一的程序界面。 文本框的属性: Name:TxtContent Text:None 三个表示色彩的标签: 红色标签,Name:LblRed Caption:红色 绿色标签,Name:LblGreen Caption:绿色 蓝色标签,Name:LblBlue Caption:蓝色 三个表示色彩的横向滚动条: Min : 0 Max : 255 SmallChange : 1 LargeChange:5 显示“大小”字样的标签: Name:LblSize Caption:大小 对文本框大小进行控制的竖向滚动条: Name : VsbSize Min : 0 Max : 100 SmallChange:1 LargeChange:5 用于显示大小变化尺寸的标签: Name:LblShow Caption:None 2、双击红色滚动条,在弹出的程序代码窗口中输入: Private Sub HsbRed_Change() TxtContent.BackColor = RGB(HsbRed.Value, HsbGreen.Value, HsbBlue.Value) End Sub 另外,就 HsbRed 的 Scroll 事件也输入上面的代码: Private Sub HsbRed_Scroll() TxtContent.BackColor = RGB(HsbRed.Value, HsbGreen.Value, HsbBlue.Value) End Sub 3、同理所得,在绿色与蓝色滚动条中输入相应代码。 这样,通过滚动条控制文本框背景色的目的达到了。 4、在“通用”选项中定义全局全量,用来储存文本框 的原始尺寸: Dim Iwidth As Integer Dim Iheight As Integer 5、用来改变文本框尺寸的竖向滚动条:

第 26 页 共 42 页

Change 事件: Private Sub VsbSize_Change() TxtContent.Width = Iwidth * (VsbSize.Value / 100) TxtContent.Height = Iheight * (VsbSize.Value / 100) LblShow.Caption = VsbSize.Value & "%" End Sub Scroll 事件: Private Sub VsbSize_Scroll() TxtContent.Width = Iwidth * (VsbSize.Value / 100) TxtContent.Height = Iheight * (VsbSize.Value / 100) LblShow.Caption = VsbSize.Value & "%" End Sub 6、调试: 按 F5 键进行调试,发现文本框的尺寸无法调整。这是 因为,没有在初始状态 下将原文本框的宽度、高度赋值给变量。 在 Form 的 Load 事件中输入以下代码: Private Sub Form_Load() Iwidth = TxtContent.Width Iheight = TxtContent.Height LblShow.Caption = "100%" End Sub 7、最后结果如图二:

选中时钟控制器,将鼠标移到界面设计区,在窗体中拖 出一个矩形就可以创建一个 Timer 控件了。跟其他控 件不同的是,无论你绘制的矩形有多大,Timer 控件的 大小都不会变,如图二:

图二 另外,Timer 控件只有在程序设计过程中看得见,在程 序运行时是看不见的。 一、Timer 控件的属性: Timer 控件可以使用 Name 属性与 Enabled 属性,但 最重要的是 Interval 即时间间隔属性。 Interval 属性决定了时钟事件之间的间隔,以毫秒为单 位,取值范围为 0 ~ 65535 ,因此其最大时间间隔不 能超过 65 秒, 即一分钟多一点的时间。 如果把 Interval 属性设置为 1000 ,则表示每秒钟触发一个 Timer 事 件。 其语法格式: Timer.Interval = X ,其中,X 代表具体的时间间隔。 二、Timer 控件的 Timer (定时)事件: 当一个 Timer 控件经过预定的时间间隔,将激发计时 器的 Timer 事件。使用 Timer 事件可以完成许多实用 功能,如显示系统时钟、制作动画,等等。 三、示例: 有如图三这样一个应用程序, 标签能够自动显示当前时 间。

图二

vb 神童教程第二章第十三节 神童教程第二章第十三节——Timer 控件
在 Windows 应用程序中常常要用到时间控制的功能, 如在程序界面上显示当前时间, 或者每隔多长时间触发 一个事件,等等。而 Visual Basic 中的 Timer(时间) 控制器就是专门解决这方面问题的控件。 Timer 控制 器在工具箱面板上的图标如图一:

图三 1、创建程序界面: 界面如图四,为了便于大家观看,我们将 LblShow 的 边界类型设为 1 。 另外, 别忘了把 Timer1 的 Interval 属性设置为 1000 。

图一 第 27 页 共 42 页

在窗口中创建的磁盘列表框可以自动显示电脑上或网 络上的所有磁盘驱动器,另外,还可以通过语法设置运 行时显示的驱动器名称,这就要用到 Drive 属性。 磁 盘列表框名称.Drive = Drive (如 C: , 或者 D: 等等) , 。 比如,要在窗体启动时把当前磁盘改为 F 盘,那么: Private Sub Form_Load() Drive1.Drive = "F:" End Sub

图三 vb 神童教程第二章第十四节 神童教程第二章第十四节——文件操作控件 二、DirListBox(文件夹列表框)控件: 文件操作控件 在一个应用程序中, 对文件的处理是一个比较常用的操 在工具箱面板上,DirListBox 控件的图标如图四: 作,如打开文件、保存文件,等等。Visual Basic 提供 了三个控件对磁盘文件夹与文件进行显示与操作, 它们 分别是:DriveListBox(磁盘列表框)控件、DirListBox (文件夹列表框) 控件, 以及 FileListBox (文件列表框) 控件。如图一: 图四 文件夹列表框控件可以显示与设置文件夹的路径, 当用 户在窗口中创建 DirListBox 控件时,双击其中的文件 夹,不需进行编程就能自动显示下一级的文件夹,如图 五:

图四 2、在 Timer1 的 Timer 事件中输入以下代码: Private Sub Timer1_Timer() LblShow.FontSize = 30 LblShow.FontName = "宋体" LblShow.Caption = "当前时间为:" & Time End Sub 注意,Time 是 Visual Basic 中的关键詞,表示显示系 统时间。

图一 一、DriveListBox(磁盘列表框)控件: 在工具箱面板上,DriveListBox 控件的图标如图二:

图二

图五 本控件的主要属性是 Path 属性,用来返回或设置当前 文件夹的路径, 只能在程序运行中使用, 其语法是: 文 第 28 页 共 42 页

件夹列表框名称.Path = 具体的路径 比如,我们要在窗体启动时把默认显示的文件夹改为 D:\Mytool\ ,程序可以这样写: Private Sub Form_Load() Dir1.Path = "D:\Mytool\" End Sub 三、FileListBox(文件列表框)控件: 跟前面两个控件一样, 本控件能够自动显示符合条件的 文件清单。如图六:

Dir1.Path = Drive1.Drive End Sub 2、对文件夹列表框控件进行的操作,直接影响文件列 表框所显示的内容: Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub 最后结果如图八:

图六 文 件列表 框控件 主要有两 个属性 ,即 Path 属性 与 FileName 属性,前者代表文件的路径,从显示路径的 功能上来说,比后者更简便一些?;后者则用来返回或 设置所选文件的路径与文件名,其语法是: 文件列表 框名称.FileName = 路径 比如,我们要在窗体启动时将 E:\稿件 目录下的所有 ZIP 文件列出来,程序可以这样写: Private Sub Form_Load() File1.FileName = "E:\稿件\*.zip" End Sub 结果如图七:

图八

vb 神童教程第二章第十五节 神童教程第二章第十五节——窗体 窗体
窗体犹如一块画布,在设计时是程序的设计区域,而在 运行程序时,每个窗体对应于一个窗口。 一、窗体的结构: 窗体结构与普通 Windows 下的窗口非常相似, 如图一:

图七 四、三个控件的连接: 上面我们就三个控件进行了分别的学习,在程序中,它 们却是互不关连的,并不是只要在窗体中创建了它们, 然后对某个控件(如磁盘列表框)进行操作,其他控件 就会自动显示相应的磁盘下的文件, 这需要用程序进行 实现。 1、 将磁盘列表框的操作赋值给文件夹列表框的 Path 属 性,在磁盘列表框的 Change 事件中输入如下代码: Private Sub Drive1_Change()

图一 系统菜单:Form1.ControlBox,点击它可以弹出菜单命 令。 标题栏:Form1.Caption,显示的窗口标题,如本例中的 “Form1” 。 最小化按钮:Form1.MinButton 。 最大化按钮:Form1.MaxButton 。 二、窗体的主要属性: 1、 名称: 命名规则为 FrmX , FrmShow 、 如 FrmFirst , 等等,主要用于程序调用。 2、AutoRedraw(自动重画) 本属性控制图像的重建, : 常用于多窗体程序设计中,语法如下: 窗体名称.AutoRedraw = True/False 当 AutoRedraw 设置为 True 时,那么本窗体被另外的 窗体覆盖后,又回到此窗体时,将自动重新刷新或重画

第 29 页 共 42 页

Form1.Width = 300 窗体上的所有图形;如果是 False ,则必须通过事件过 End Sub 程来设置这一操作。 默认属性为 False。如图二: 5、Top(顶部)与 Left(左边距)属性: 通过这两个属性可以控制窗体的坐标位置, 默认单位是 Twip 。 要注意的是, 随对象的不同, 这个 Top 与 Left 的意义 不同。当对象是窗体,Top 指的是窗体顶部与屏幕顶部 的相对距离, Left 指的是窗体左边界与屏幕左边界的间 距;当对象是其他控件时,它们分别表示控件顶部、左 边与窗体顶部、左边之间的距离,如图五所示: 图二 3、BackColor(背景色)与 ForeColor(前景色) : 前者用来指定窗体的背景色,如图三:

图五 语法示例: Private Sub Form1_Click() Form1.Top = 200 Form1.Left = 300 End Sub 上面的语句会把 Form1 窗体移动到距屏幕顶部 200 Twip ,距屏幕左边距 300 Twip 的地方。 6、Visible(可见)属性: 图三 当一个对象的 Visible 属性设置为 False 时,程序运行 后者用来指定文本或图形的前景色,如图四: 时不能看见;只有当 Visible 属性值变为 True 时,才 能被看见。 本属性虽然简单,但却是常常需要用到的,请大家牢记 在心。 三、窗体的主要事件: 1、Load(装入)事件: 窗体最主要的事件, 用来在启动程序时对属性和变量进 行初始化。程序一旦运行,将自动触发本事件。 2、UnLoad(卸载)事件: 既然有装入事件,自然就有卸载事件,它的作用是从内 存中清除一个窗体。卸载后如果要重新装入窗体,那么 新装入的窗体上的所有控件都需要重新初始化。 图四 3、Click(单击)与 DblClick(双击)事件: 4、Height(高度)与 Width(宽度) : 在以前的学习中,我们已经接触到了 Click 事件,实际 这两个属性用来指定窗体的高度与宽度,其单位是 上,对一个严谨的程序来说,这种应用不是很普遍,大 Twip ,即 1 点的 1/20 (1/1440 英寸)。 如要让窗体的 家知道就行了。 高度变为 200 ,宽度变为 300 ,那么程序应该写成: vb 神童教程第三章第一节 神童教程第三章第一节——图形框与图像框 图形框与图像框 Private Sub Form1_Click() 控件 Form1.Height = 200 Visual Basic 为编程人员提供了强大的绘图功能支持, 第 30 页 共 42 页

在本章,我们将学会基本的绘图方法。 在 VB 中,主要通过两种办法进行图像绘制:一 种是利用 ActiveX 控件,如用图形框显示图片;另外 一种是通过使用 VB 语言本身的函数和方法,通过在 屏幕上绘制点、线和图形来制作。 一、图形框控件的主要属性: 图形框控件(PictureBox)可以用来显示位图、JPGE、 GIF、图标等格式的图片,在工具箱面板中,图形框控 件的图标如图一:

四、图像框与图形框控件的区别: 1、图形框是“容器”控件,可以作为父控件,而图像 框不能作为父控件,其他控件不能作为图像框的子控 件。 图形框作为一个“容器” ,可以把其他控件放在其内作 为它的“子控件” ,当图形发生位移,其内的子控件也 会跟着一起移动。

图三 2、图形框可以通过 Print 方法显示与接收文本,而图 1、Name 属性: 命名规则为:PicX ,如 PicMove 、PicShow ,等等。 像框不能。 2、Picture(图片)属性: 3、图像框比图形框占用内存少,显示速度更快一些, 本属性用来返回或设置控件中要显示的图片, 可以通过 因此,在图形框与图像框都能满足设计需要时,应该优 属性窗口进行设置。如果要在程序运行过程中载入图 先考虑使用图像框。 片,常常使用 LoadPicture 函数,其语法规则为: vb 神童教程第三章第二节 神童教程第三章第二节——综合示例六 综合示例六 在本节, 我们要实现两张不同图片在同一个图形框内的 对象.Picture = LoadPicture("图形文件的路径与名字") 切换,同时可以启用与禁用图形框的自动适应功能。 如:PicMove.Picture = Loadpicture("c:\Picts\pen.bmp") 3、AutoSize(自动显示)属性: 本属性决定了图形框控件是否自动改变大小以显示图 片的全部内容。当值为 True ,图象可以自动改变大小 以显示全部内容;当值为 False ,则不具备图象的自我 调节功能。 二、图形框控件的主要事件: 它可以接收 Click(单击)事件与 DblClick(双击)事 件,还可以在图片框中使用 Cls(清屏) 、Print 方法。 在实际使用过程中,它多是作为一种图形容器出现,所 以常常是跟其他控件搭配使用的,如点击一个按钮,图 图一(切换前) 形框自动装入图片,等等。 三、图像框控件(Image)的主要属性: 跟图形框一样,图像框控件也具有诸如 Name、Picture 等属性,以及 Loadpicture 的方法,但在图像自适应问 题上有所不同。 PictureBox 用 AutoSize 属性控制图形的尺寸自动适 应,而 Image 控件则用 Stretch 属性对图片进行大小 调整。如图二: 图一

图二(切换后) 一、设计: 1、创建如图一的界面: 显示标签: 第 31 页 共 42 页

图二

Name:LblShow Caption:现在显示的是第一张图 图形框控件: Name:PicShow AutoSize:None 自动适应复选框: Name:ChkAutoSize 图片切换按钮: Name:CmdShow Caption:图片二 2、先在通用区声明如下变量: Dim X As Integer Dim IWidth As Integer Dim IHeight As Integer 其中,X 准备用来做为图片切换的条件,当 X 为 1 , 图片切换按钮可以切换到图片二; X 为 2 , 当 图片切 换按钮可以切换到图片一。 IWidth 与 IHeight 准备用来储存图形框的初始宽度与 高度,以便在图形框发生大小变化后回复到原样。 3、程序打开时自动载入图片一: 这样,图片切换按钮就应该能够切换到图片二,所以将 1 赋给 X : Private Sub Form_Load() PicShow.Picture = LoadPicture("E:\ 稿 件 \Ccidnet\vb\image\vb3-2-1-copy.gif") X=1 End Sub 4、自动适应功能的实现: Private Sub ChkStretch_Click() If ChkStretch.Value = 1 Then IWidth = PicShow.Width IHeight = PicShow.Height PicShow.AutoSize = True Else PicShow.AutoSize = False PicShow.Width = IWidth PicShow.Height = IHeight End If End Sub 上面程序的意思是,如果复选框被选中,那么先将原始 图形框的宽度与高度赋给 IWidth、IHeight ,然后再通 过激活 PicShow 的 AutoSize 功能达到图形框的自动 适应;如果复选框没被选中,那么禁止 PicShow 的 AutoSize 功能,然后将图形框原来的高度(现在的 IHeight)和宽度(现在的 IWidth)赋值给图形框以恢 复原样。 5、图片切换: Private Sub CmdShow_Click() If X = 1 Then PicShow.Picture = LoadPicture("E:\ 稿 件 \Ccidnet\vb\image\vb3-2-2-copy.gif")

LblShow.Caption = "现在显示的是第二张图" CmdShow.Caption = "图片一" X=2 Else PicShow.Picture = LoadPicture("E:\ 稿 件 \Ccidnet\vb\image\vb3-2-1-copy.gif") LblShow.Caption = "现在显示的是第一张图" CmdShow.Caption = "图片二" X=1 End If End Sub 在上面的程序中,先对 X 进行判断,如果 X 为 1 , 那么图形框显示图片二,显示标签改变成“现在显示的 是第二张图”字样,作为图形切换的按钮, Caption 变成“图片一” ,然后再让 X 为 2 好进入另 外一种情况;当 X 为 2 ,那么图形框显示图片一,显 示标签与切换按钮发生相应变化。 二、联想: 记得第一次设计这个程序时,并没有引入 X 这个辅助 变量,而是通过鼠标点击的动作来进行判断的,即,当 原始图形框中显示的是图片一,那么鼠标点击一次,即 奇数次, 图形框中会切换到图片二; 当鼠标点击第二次, 即偶数次,图形框可以切换到图片一;以此类推。所以 可以通过次数取余,如果余数为 0 ,那么图形框可以 切换到图片一;余数为 1 ,图形框可以切换到图片二。 具体程序大家可以自行思考,此处不再赘述。

vb 神童教程第三章第三节 神童教程第三章第三节——直线与形状控件 直线与形状控件
利用直线与形状控件, 可以使窗体上显示的内容更为丰 富,如在窗体上增加简单的线条和实心图形,等等。 利用直线控件, 可以建立简单的直线, 通过修改其属性, 还可以改变直线的粗细、色彩,以及线型。 通过设置形状的属性,用户可以画出圆、椭圆,以及圆 角矩形,同时还能设置形状的色彩与填充图案。 主要属性: 除了其他通用属性外, 直线与形状控件还具有一些比较 独特的属性。 1、BorderStyle(边框类型) ,实用于直线与形状。 TransParent:透明,边框不可见。 Solid:实心边框,最常见。 Dash:虚线边框。 Dot:点线边框。 Dash-Dot:点划线边框。 Dash-Dot-Dot:双点划线边框。 Inside Solid:内实线边框。 2、FillStyle(填充类型) ,实用于形状。 Solid:实心填充。 TransParent:透明填充。 Horizontal Line:以水平线进行填充。

第 32 页 共 42 页

Vertical Line:以垂直线进行填充。 Upward Diagonal:向上对角线填充。 Downward Diagonal:向下对角线填充。 Cross:交叉线填充。 Diagonal Cross:对角交叉线填充。 3、Shape(形状) ,实用于形状。 Rectangle:矩形。 Square:正方形。 Oval:椭圆形。 Circle:圆形。 Rounded Rectangle:圆角矩形。 Rounded Square:圆角正方形。

3、绘制矩形: 用 Line 方法还可以绘制矩形,语法如下: 对象名.Line (X1,Y1) - (X2,Y2), [Color], B ,[F] 其中, (X1,Y1) 是矩形的左上角座标, (X2,Y2)是矩形右 下角座标,Color 为矩形边框的颜色,使用参数 B 而 不用 F ,那么矩形用当前的填充色(FillColor)与填充 方式 (FillStyle) 对矩形进行填充; 如果使用了参数 F , 那么矩形以边框的颜色进行填充。如图二:

vb 神童教程第三章第四节 神童教程第三章第四节——常用的绘图方法 常用的绘图方法
除了前面谈到的用控件显示与绘制图形的方法外,VB 还提供了一组庞大的方法用来绘制点、线、面,以及设 置前景、背景色等各种方法。 一、设置当前绘图点: 在 VB 中, 可以通过设置窗体或图形框的 CurrentX 与 CurrentY 属 性 来 设 置 当 前 绘 图 点 。 CurrentX 与 CurrentY 决定了绘制或显示的起始坐标, 在设计时, 这 两个属性不可用。 二、绘制点、线、面的方法: 1、点的绘制法: 在指定对象 (如窗体、 图形框) 上的指定位置处绘制点, 还可以为点指定颜色,语法如下: 对象名.Pset (X,Y),[Color] X , 分别为点的水平与垂直坐标, Y Color 为点的颜色, 是可选项。 2、直线的绘制法: 在对象上绘制直线,语法如下: 对象名.Line (X1,y1) - (X2,Y2), [Color] (X1,Y1) 是直线的起点,(X2,Y2)是直线的终点,Color 为可选项。 如图一:

图二 特别注意,用 Line 画矩形框,如果不用其他参数,那 么 B 与坐标(X2,Y2)之间应该有两个逗点, 一个是紧跟 坐标 2,一个表示 Color 省略了,如:Picture1.Line (500,500) - (1000,1000),,B 4、绘制圆、椭圆、弧: 用 Circle 方法可以绘制圆、椭圆与弧,语法如下: 对象名.Circle (X,Y), Radius, [Color,start,end,aspect] 其中,(X,Y)是圆、椭圆或弧的圆心坐标,Radius 是半 径, 这两个参数是必须项; Color 是圆的轮廓色, Start 与 End 是弧的起点与终点位置。其范围是 -2 —— 2Pi ; Aspect 是圆的纵横尺寸比, 默认值是 1 即圆, 如图三:

图一 2、图形框的代码是: Private Sub Picture1_Click() Picture1.Line (350, 1020)-(2050, 1020) End Sub

图三 三、颜色、前景与背景色的设置: 1、颜色函数 RGB() 在前面关于卷动条控件(综合示例五)的讲解中,我们 讲述了色彩的设置问题, 而这正是 RGB 颜色函数的原 理所在。色彩设置的方法如下: RGB(Red,Green,Blue) 不要忘了,Red、Green、Blue 每种色彩各有 0——255 种成份,三种色彩不同参数的搭配,就产生了丰富多采 第 33 页 共 42 页

的现实世界。 2、前景色的设置: 通过对 ForeColor(前景色属性)的设置,可以返回或 设置对象的前景色。 3、背景色的设置: 对 BackColor 属性进行设置,就可以返回或设置对象 的背景色。 4、图形的清除: 用 Cls 方法可以清除窗体或图形框在程序运行中绘制 的图形,语法如下: 对象名.Cls

vb 神童教程第四章第一节 神童教程第四章第一节——菜单界面设计 菜单界面设计
任何一个应用程序, 都需要通过各种命令来达成某项功 图三 能,而这些命令,大多数是通过程序的菜单来实现的, 当然,程序光是有菜单还不行,它只是为用户提供了便 如我们常常用到的记事本的菜单: 捷的操作接口,程序功能的最终实行,还必须通过给这 些菜单输入复杂的程序才能得以实现。 下面,我们以 Windows 自带的笔记本为例,介绍如何用 VB 制作菜 单。 一、菜单制作: 1、双击如图二的菜单编辑器图标,然后弹出如图三的 编辑窗口。 2、标题:显示在菜单中的文本,这里,我们输入“文 件(&F)”字样。 (&F) 是什么东西?这是为了方便用户使用键盘操作菜 单,当程序运行时,(&) 字样不会出现,而是在字母 F 下加上一条横线, 这表示, 只要用户在按住 Alt 键的同 图一 时再按下 F 键,就相当于用鼠标点击“文件”这个菜 VB 提供了一个菜单编辑器,专门用来制作各式各样的 单命令了。也就是说,文件菜单的快捷键是 Alt+F 。 菜单,它在标准工具栏中的图标如图二: 名称:本菜单在程序中的名称,主要用作程序调用,因 此记得用英文名,另外,名字最好一目了然,这里,我 们将“文件”菜单命名为 MenuFile 。 “文件”菜单制作完毕,如图四:

图二 双击该图标,弹出如图三的窗口,通过这个窗口,我们 就可以制作菜单了。

图四 3、点击菜单编辑器上的“下一个”按钮,制作下一个 菜单,这时,我们看到,编辑区域自动提到了下一行, 如图五: 第 34 页 共 42 页

4、制作菜单分隔线: “另存为”菜单下面是条分隔线,那么分隔线如何表示 呢?很简单,只需在“标题”框中输入“-” 就行了, 图五 命名为 MenuSperate1 ,然后点按“下一个”按钮制作 点击向右按钮,本行前面出现了四个小点,表示本菜单 下面的菜单。如图七: 降了一级,是二级菜单(依此类推,如果要制作三级菜 单,只需要再点一下向右按钮进行降级就行了) 。然后 用第二步的方法,制作“新建”(MenuNew)、 “打开” (MenuOpen) 、 保 存 ” (MenuSave) 、 另 存 为 ” “ “ (MenuSaveOther)菜单,结果如图六:

图七 5 、 同 理 可 做 “ 页 面 设 置 ” (MenuPage) 、 打 印 ” “ (MenuPrint)、 “分隔线二”(MenuSeprate2)、 “退出菜单” (MenuQuit),如图八: 图六 上面讲到了用 & 符号制作快捷键的方法,这里我们再 使用 VB 菜单编辑器中的“快捷键”定制方法制作快 捷键。 找到“新建”菜单,先在“新建(&N)”字样后面添加六 个空格,以便后面显示的快捷键跟菜单名之间有点空 隙,然后在快捷键下拉列表中选择 Ctrl+N ,这表示在 按住 Ctrl 键的同时按 N 键就能使用“新建”命令了, 如下图: 图八 6、制作“编辑”菜单: 由于“编辑菜单”是一级菜单,所以在完成“退出”菜 单,并点按“下一个”按钮后,别忘了点按向左按钮, 将当前菜单进行升级,这时可以看到,本行前面的四个 小点消失了,如图九:

第 35 页 共 42 页

大家可以用鼠标右键点击工具箱面板, 在弹出的面板中 选择 “部件” 然后在弹出的窗口中找到 , “Microsoft Rich Textbox Control 6.0” ,勾选本控件的复选框,最后“确 定”就行了,如图十二:

图九 7、 根据前面学到的知识, 我们制作 “编辑” (MenuEdit)、 “撤消” (MenuUndo)、 “分隔条三” (MenuSeprate3)、 “剪 切” (MenuCut)、复制” “ (MenuCopy)、粘贴” “ (MenuPaste)、 “删除”(MenuDel)、 “分隔条四”(MenuSeprate4)、 “全 选”(MenuSelectAll)、 “时间/日期”(MenuDate)、 “分隔 图十二 条五”(MenuSeprate5)、 “自动换行”(MenuWrap)、 “设 二、菜单属性设置: 置字体”(MenuFont)菜单。如图十: 对各个菜单的属性设置,可以在制作菜单的过程中进 行,也可以在菜单设计完毕后集中进行处理。 1、菜单 的“有效”性: 只有当菜单处于“有效”状态时才能被使用。 对于一个新的空白文件来说,撤消、剪切、复制、粘贴 的命令缺少操作对象,所以在初始状态下,它们应该是 “无效”的。 打开菜单编辑器,找到“撤消”菜单,然后将“有效” 复选框前的勾去掉,这样, “撤消”菜单无效了,如图 十三:

图十 8、添加 RichText 控件: 最后在窗体内添加一个 RichText 控件, 结果如图十一:

图十三 同理,将“剪切”“复制”“粘贴”三个菜单变为“无 、 、 效” 。 2、复选菜单: 在记事本中, “自动换行”可以对文本的显示进行换行 控制,默认状态为“非自动换行”模式,点击一次则启 图十一 动“自动换行”模式,再点击一次就取消“自动换行” , 在默认的工具箱面板中,RichText 控件没有罗列出来, 象这种菜单,我们称为“复选菜单” 。 第 36 页 共 42 页

复选菜单的制作非常简单, 只需找到要作为复选菜单的 图二中每行前面点的多少可以判断出来。 另外,不要 那个菜单,然后勾选“复选”按钮就行了,如图十四: 忘记勾选“红”“绿”“蓝”三种色彩的菜单前的“复 、 、 选”选项。 二、输入程序代码: 1、退出菜单: 在 VB 中,End 是专门用来退出程序的命令,因此, 我们在“退出菜单”中输入如下代码: Private Sub MenuQuit_Click() End End Sub 这样,只要点击本菜单,自动退出程序。 2、复选菜单的判断: 在 VB 中,可以用如下语法对复选菜单进行判断: 复选菜单名.Checked = True/False 图十四 但是,此时的复选按钮还不健全,需要代码的支持方能 当值为 True ,复选菜单被选中;值为 False ,菜单未 被选中。 正常使用,具体情况在下一节的示例中讲述。 三、根据本节学到的知识,请大家自行设计笔记本中余 3、我们要让程序在初始状态下保持本色,在 Form 的 装入事件中输入以下代码: 下的菜单。 Private Sub Form_Load() vb 神童教程第四章第二节 神童教程第四章第二节——综合示例七 综合示例七 有如图一这样一个小程序, 通过 “菜单” 下的色彩设置, MenuRed.Checked = False 可以将窗体的背景分别改为“红”“绿”“蓝”色,点 MenuGreen.Checked = False 、 、 MenuBlue.Checked = False 击“菜单”下的“退出” ,则自动退出程序。 End Sub 这段程序,让三个复选菜单都处于未被选中状态(在程 序运行时起作用,在设计过程中,三个复选菜单始终是 处于选中状态) 。 4、当按下红色菜单(MenuRed) : Private Sub MenuRed_Click() MenuRed.Checked = True MenuGreen.Checked = False MenuBlue.Checked = False 图一 Form1.BackColor = vbRed 一、界面设置: 根据第一节学到的知识,我们制作一个如图二的菜单。 End Sub 这段代码,让“红色菜单”处于选中状态,而其他颜色 的菜单处于未被选中状态, 同时将窗体的背景色变为红 色(VbRed) 。 5、当按下绿色菜单(MenuGreen) : Private Sub MenuGreen_Click() MenuRed.Checked = False MenuGreen.Checked = True MenuBlue.Checked = False Form1.BackColor = vbGreen End Sub 绿色菜单处于选中状态,其他菜单非选中,同时窗体背 景色变为绿色。 图二 6、按下蓝色菜单: 需要注意的是, “菜单”为一级, “色彩设置”“退出” Private Sub MenuBlue_Click() 、 为二级、 “红色”“绿色”“蓝色”为三级菜单,根据 MenuRed.Checked = False 、 、 第 37 页 共 42 页

MenuGreen.Checked = False MenuBlue.Checked = True Form1.BackColor = vbBlue End Sub 蓝色菜单处于选中状态,其他菜单非选中,同时窗体背 景变为蓝色。 7、最后按 F5 键,如何,程序正常运行了吧? 三、联想: 本节我们讲到复选菜单是如何对选中进行判断的, 那就 是看 Checked 值是否为 True 。 前面我们学过单选按钮(OptionBUtton) 、复选按钮 (CheckBox) ,它们也有是否被选中的判断,那么,它 们有什么不同呢? 注意,单选按钮是否选中的判断: 单选按钮名.Value = True/False 。由于单选按钮只能二 选一或多选一,所以往往不需判断,只需响应 Click 事 件就行了。 复选按钮的判断: 复选按钮名.Value = 0/1/2 。由于复选按钮可以一次多 选,所以对它的判断最为复杂,常常需要用到诸如 If……Then 等条件语句进行判断。 但它跟复选菜单不同 的是,复选菜单常常只能多中选一,比如上面例子中, 选择了 “红色菜单” 就不能选择 “蓝色菜单” 等等。 记 , 不清楚的朋友可以回头复习一下,此处不再赘述。

vb 神童教程第四章第三节 神童教程第四章第三节——动态增减菜单 动态增减菜单
我们在上一节示例的基础上,来制作如图一的小程序, 每点击一次“增加信息”命令,菜单上会自动增加一个 “信息”菜单,每点击一次“清除菜单”命令,程序自 动清除当前信息菜单; 当菜单回复原样, 即只剩 “信息” 菜单时, “清除菜单”无效。

图一 一、界面设置: 在第二节最终结果的基础上,创建如图一的界面,需要 注意的是, “信息” 菜单(MenuHint)必须在前面的 “索引” 框中填入数字 0,如图二:

图二 除了前面谈到的用控件显示与绘制图形的方法外,VB 还提供了一组庞大的方法用来绘制点、线、面,以及设 置前景、背景色等各种方法。 一、设置当前绘图点: 在 VB 中, 可以通过设置窗体或图形框的 CurrentX 与 CurrentY 属 性 来 设 置 当 前 绘 图 点 。 CurrentX 与 CurrentY 决定了绘制或显示的起始坐标, 在设计时, 这 两个属性不可用。 二、绘制点、线、面的方法: 1、点的绘制法: 在指定对象 (如窗体、 图形框) 上的指定位置处绘制点, 还可以为点指定颜色,语法如下: 对象名.Pset (X,Y),[Color] X , 分别为点的水平与垂直坐标, Y Color 为点的颜色, 是可选项。 2、直线的绘制法: 在对象上绘制直线,语法如下: 对象名.Line (X1,y1) - (X2,Y2), [Color] (X1,Y1) 是直线的起点,(X2,Y2)是直线的终点,Color 为可选项。 如图一:在程序中,只要在“索引”文本中输入了数字, 就代表这个菜单成为了一个 “菜单数组” 通过这个 , “菜 单数组”可以实现菜单的动态增加与清除。 二、程序代码: 1、为“信息菜单”指定变量: 对于增加或清除菜单命令, 我们可以这样看: 原始的 “信 息菜单”为 MenuHint(0) ,这也是索引值为 0 的意义 所在; 那么增加的一个信息菜单就应该为 MenuHint(1), 再增加一个,就应该为 MenuHint(2),依此类推;清除 一个信息菜单也类似,如果当前是 MenuHint(X),那么 清除一个后应该为 MenuHint(X-1),依此类推。 指 定索 引值 为 HintNumber , 那么 增加时 ,应 该是 HintNumber = HintNumber + 1 ; 清 除 时 , 应 该 是 HintNumber = HintNumber -1 。 2、变量的作用域: 一个变量的作用域倒底有多大?这得由变量的类型来

第 38 页 共 42 页

决定。当一个变量只在某一个过程或事件(如某个按钮 的单击事件)中起作用,那么它就是局部变量,可以在 事件中直接定义;当一个变量可以在整个窗体内供使 用,那么它可能是窗体层变量或全局变量,凡是在这个 窗体上的事件都可以对这个变量进行引用, 这种变量只 能在“通用”过程中进行“声明” 。 因为 HintNumber 既要在“增加菜单”事件中引用,又 要在“清除菜单”事件中引用,所以我们将它作为窗体 层变量在“通用”过程的“声明”中对其进行定义,如 图三:

End Sub 上 面 的 代 码 , 先 对 HintNumber 值 进 行 判 断 , 当 HintNumber 为 0 即程序的初始状态时, 直接退出当前 过程(Exit Sub 是退出当前过程的命令,切记) ;如果 HintNumber 不为 0 ,那么卸载索引值最高的信息菜 单, MenuHint(HintNumber) , 即 然后讲算 HintNumber -1 并将结果赋给新的 HintNumber ,并最后退出条件 判断。 6、 “清除信息”菜单的“有效性” : 如果程序处于初始状态, “信息菜单” 即 的索引值为 0 , 那么“清除信息”命令无效,否则有效。由于只有先点 击“帮助菜单(MenuHelp) ”才能弹出“清除信息菜单 (MenuClear),所以可以在 MenuHelp 的点击事件中 ” 输入以下代码: Private Sub MenuHelp_Click() If HintNumber = 0 Then MenuClear.Enabled = False Else 图三 MenuClear.Enabled = True 图三中的代码如下: Dim HintNumber As Integer End If 3、在窗体的载入事件中让 HintNumber 为初始值 0 , End Sub 再加上原来的代码,结果如图四: 7、测试: 按键盘上的 F5 键,对程序进行最终的测试。 三、提醒: 本节最重要的是掌握诸如 HintNumber 这种辅助变量, 它将鼠标的点击动作用数字的形式加以诠释, 通过值的 加减来完成菜单的动态增加与清除。 这种辅助变量的使用,在 VB 中几乎是无处不在的, 图四 如前面我们在讲 For……Next……的语法时说的作为 4、 “增加信息”菜单的 Click 事件: 累加器的变量。 Private Sub MenuAdd_Click() 另外, 从上面的例子我们可以看出, Load/Unload 不仅 HintNumber = HintNumber + 1 适用于窗体的装入与卸载, 同时还适用于菜单的装入与 Load MenuHint(HintNumber) 卸载。 MenuHint(HintNumber).Caption = "信息" & HintNumber vb 神童教程第四章第四节 神童教程第四章第四节 程第四章第四节——基本的窗体操作 基本的窗体操作 End Sub 在前面的教程中,我们讲到了窗体的主要属性与事件, 本节知识对 上面程序的意义在于,先计算 HintNumber + 1 并将结 而本节我们主要讲述窗体的一些窗口运用。 果赋给新的 HintNumber , 然后通过 Load 命令打开一 于后面“多文档文件”的创建非常重要,所以希望大家 个新菜单 MenuHint(HintNumber) ,并让新菜单的标题 好好掌握。 变成“信息 X” ,其中,X 是数字,表示这是第几个信 一、添加窗体: 息菜单。 在 VB 中每创建一个新文件,自动会生成一个新窗体, 5、 “清除信息”菜单的 Click 事件: 如果想在本窗体的基础上再添加一个窗体, 那么应该如 Private Sub MenuClear_Click() 何做呢? If HintNumber = 0 Then 1、选择工程/添加窗体命令,弹出如图一的窗口: Exit Sub Else Unload MenuHint(HintNumber) HintNumber = HintNumber - 1 End If 第 39 页 共 42 页

图一 2、选择你需要的窗体,然后点按“打开”就行了,结 果可以在“工程”窗口中看到,如图二:

图四

2、其他窗体的载入: 我们可以在主窗口中设置菜单或按钮, 并在该菜单或按 钮的代码区输入如下代码: Form2.Show 1 其中,Show 是显示窗体的一种方法,1 是窗体的显示 模式即 Mode ,当值为 0 即非模态窗体时(常态窗 图二 口) 允许用户在当前程序中切换到其他窗口; , 当值为 1 二、清除窗体: 即模态窗体时,用户不能在各个窗口间切换。 在 “工程” 窗口中选中欲被清除的窗体, 然后鼠标右键, 3、窗体在程序中的三种状态: 未装入:窗体没进入程序,不占用程序资源,可以通过 在弹出的菜单中选择“移除……”命令。如图三: Unload 方法卸载窗体。 装入但不显示: 可以用 Load 方 法将窗体载入内存,随时准备显示。 显示: Show 方法可以显示窗体, 用 如果窗体已装入内 存, 那么直接 Show ; 如果窗体还没装入内存, Show 可 以先用 Load 的方法将窗体载入内存,然后再显示出 来。 载入窗体:Load FormX 卸载窗体:Unload FormX 显示窗体:FormX.Show Mode

vb 神童教程第四章第五节 神童教程第四章第五节——多文档程序 多文档程序
在 Windows 中,文档分为单文档(SDI)和多文档 (MDI)两种,如我们熟悉的“记事本”就是一个典型 的单文档程序, 它最明显的特点是一次只能打开一个文 件,当新建一个文件时,当前文件自动被替换掉。 多文档界面, Word , 如 允许用户同时打开多个文件进 行操作。在多文档界面中,有一个窗体叫做主窗体(又 称为 MDI 窗体) ,其他窗体称为子窗体。子窗体始终 处在主窗体内部, 主窗体的位置移动会导致子窗体的位 置发生相应变化。如图一:

图三 三、窗体的显示属性: 多窗口文件,往往是启动时打开主窗口,通过一些命令 再打开其他窗口,那么,如何对窗口是否显示进行设置 呢? 1、选择“工程/工程属性”菜单命令,在弹出的窗口中 找到“启动对象” ,然后从中选择文件打开时的主窗口 是哪个,如图四:

第 40 页 共 42 页

图一 一、多文档程序的建立: 多文档程序至少有两个窗体, 一个主窗体和一个子窗体 或多个子窗体,主窗体是其他窗体的容器。 1、 创建一个新工程, 然后选择工程/工程属性菜单命令, 加入如图二的主窗体:

图四 4、控制程序的打开状态: 如果要让程序打开时自动载入 Form1 窗口,那么在如 图五的工程属性窗口中选择“启动对象”为 Form1 ; 如果不想显示子窗体,那么只需在“启动对象”中选择 MDIForm1 就行了。

图五 5、子窗体的显示: 假设工程的启动对象为 MDIForm1 ,那么如何显示子 图二 窗体 Form1 呢? 2、在“项目”窗口中双击 Form1 切换到 Form1 ,然 可以在主窗体中加入菜单,或者直接用 Load 的方法, 后将其 MDIChild 属性设为 True ,如图三: 如下: Private Sub MDIForm_Load() Form1.Show 0 End Sub 这段代码将 Form1 显示出来,并呈非模态模式。 二、主窗体与子窗体的标题: 当主窗体与子窗体都呈显现状态时,把子窗体最大化, 你会发现窗体的标题变成了主窗体标题加上子窗体标 题,如图六: 图三 3、按 F5 键运行程序,结果如图四:

第 41 页 共 42 页

图六 三、主窗体与子窗体的菜单: 在 VB 中,如果子窗体载入,那么主窗体的菜单将被 子窗体的菜单替换; 只有当主窗体中没有子窗体时才能 显示主窗体的菜单,如图七、图八、图九、图十:

图九

图七

图八

第 42 页 共 42 页


赞助商链接
更多相关文档:

VB教程十讲(经典例子)

VB 程序设计基础二、工具箱里的控件 一个程序的窗口是由许多对象组成的,在 VB...精典VB图文教程 74页 1下载券 vb经典教程 42页 1下载券 VB经典教程-精心整理...

金文老师vb教程笔记(完整版)

金文老师vb教程笔记(完整版)_工学_高等教育_教育专区。根据金文老师的vb教程笔记整理,最新完整版,适合学习使用。金文老师 vb 教程笔记 第一章 vasual basic 程序...

VB快速学习教程

为了简化书写重复的部分, 可以用关键字“With”: With MyHome .Street=”阜成路” .ZipCode=”100037” .Phone=”12345678” End With VB 教程:第三章 -VB...

VB教程课后习题的答案及解析_图文

VB教程课后习题的答案及解析_理学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档VB教程课后习题的答案及解析_理学_高等教育_教育专区。全国计算机等级考试...

VB基础入门教程

VB基础入门教程_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档VB基础入门教程_IT/计算机_专业资料。VB基础入门教程,能帮您从VB最基本入手,为以后的...

Vb教程(金文)目录

Vb教程(金文)目录_IT认证_资格考试/认证_教育专区。二级 Vb 教程(金文)对照目录 第一章 Visual Basic 开发环境 0011-1Visual Basic 的启动与退出 0022-1 主...

VB6.0快速入门与精通(含100例)

接下来谈谈怎样学习 VB,先说说“看实例学 VB6.0”系列教程,它是面向编程初学者的 VB 入门教程, 这个教程的特点是抛开晦涩难懂的概念和语法,不做内容上的堆积和...

VB速成教程【1】

35页 5财富值 VB基础入门教程 71页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 ...

VB6图文实例教程

VB6图文实例教程_IT/计算机_专业资料。VB6图文实例教程 教程:序言VB 教程:序言-不再游戏 我们需要什么 我们需要什么?当我们在一个精彩的游戏世界中游历了一番之...

VB教程十讲(经典例子)

VB教程十讲(经典例子) - VB 基础教程 第 1 课???VB 基础 第 2 课???标签控件 第 3 课???文本框 第 4 课???命令按钮 第 5 课???图片框...

更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com