首页 【计算机】VB神童教程跟我来学VB(打印版)(共42页)

【计算机】VB神童教程跟我来学VB(打印版)(共42页)

举报
开通vip

【计算机】VB神童教程跟我来学VB(打印版)(共42页)【计算机】VB神童教程跟我来学VB(打印版)(共42页) VB神童教程:跟我来学VB VB的故事 话说二十世纪七十年代有一对好朋友,一个叫比尔 (Bill),一个叫鲍尔(Paul)。他们经常在一起玩游戏。 起初是玩别人的游戏,但玩来玩去觉得不过瘾,于是发 明了一种语言,叫做Basic ,自己来编写游戏。 碰巧 的是,个人电脑在此时飞速发展起来,很多厂家对这种 语言很感兴趣,于是这对朋友商量着成立一个公司专门 出售Basic。 讲到这里,大家一定猜到他们是谁了吧, 没错,这个Bill就是比尔盖茨,这...

【计算机】VB神童教程跟我来学VB(打印版)(共42页)
【计算机】VB神童教程跟我来学VB(打印版)(共42页) VB神童教程:跟我来学VB VB的故事 话说二十世纪七十年代有一对好朋友,一个叫比尔 (Bill),一个叫鲍尔(Paul)。他们经常在一起玩游戏。 起初是玩别人的游戏,但玩来玩去觉得不过瘾,于是发 明了一种语言,叫做Basic ,自己来编写游戏。 碰巧 的是,个人电脑在此时飞速发展起来,很多厂家对这种 语言很感兴趣,于是这对朋友商量着成立一个公司专门 出售Basic。 讲到这里,大家一定猜到他们是谁了吧, 没错,这个Bill就是比尔盖茨,这个公司就是微软; 鲍尔(Paul Allen)后来虽然离开了微软,但同样组建了 自己的实业公司。 第三章:用 Visual Basic 绘画: Basic正是微软公司售出的第一套软件。Basic 发展 到今天已经有很多版本,如 GW-Basic 、QuickBasic 、 QBasic 、Visual Basic ,等等,其中,Visual Basic 是 最容易学习与应用的程序语言之一。虽然最容易学习与 使用,但它的功能却非常强大,很多应用程序都是用它第四章:菜单与多文档界面的制作: 编写出来的。 不是个个都能成为比尔盖茨,但你想知道天天使用 的Windows的诸多功能是如何实现的吗,你想要编写 自己的应用程序吗,那么,请跟我来吧,进入我们的 VB神童教程之旅。 学习思路 vb神童教程第一章:我的第一个 VB 程序 曾经下过很多决心自学VB。但每次看到一行行枯一、打开程序: 燥的程序代码眼皮不自觉地就要打架。后来几乎是“头点击桌面上的 Visual Basic 图标,在弹出的如图一的窗 悬梁,锥刺股”才得入门。现在想来,这种入门大可不口中选择“创建 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 EXE”按钮。 必。严谨求实的态度是非常正确的,但既然面对初学者, 也许换一种思路更贴切。少一些隐晦,多一些直观;少 一些专业术语,多一些例子。 传统的教程,多从VB的发展谈起,然后是什么编 程环境、数据类型、变量、常量、函数,等等。我们可 不可以换一种思路,让大家直接就可以编写出简单的应 用程序,在熟悉了大部分操作并激发出了兴趣后,再去 探讨一些比较抽象的东西呢, 结果就有了我们的《VB神童教程》。 在这个教程中,我们既是讲述者,也是跟大家一样图一 的初学者,我们按着一种比较容易的方式来共同学习。 确定后的状态如图二 课程安排 我们以最为普及的 VB 6.0 为例进行教程学习,循序渐 进,保证你轻松掌握。 第二章:控件学习 然后你会发现程序界面上多了一个命令按钮,如图四: 图二 这就是创建了一个新的“标准 EXE”文件了。 二、工作界面简介: 默认的 VB 工作界面由标题栏(1)、菜单栏(2)、工图四 具栏(3)、工具箱面板(4)、程序设计区(5)、项目窗用鼠标拖动新建的按钮到适当位置,如图五: 口(6)、属性窗口(7)、布局窗口(8)组成,至于它 们具体有什么作用,我们将在以后的实例学习中接触, 这里就不予以说明。 三、编写我的第一个应用程序: ,1,、应用程序要产生的效果: 创建的应用程序要有什么样的功能,这是开发每一个 应用程序必须最先想到的。 我们的第一个应用程序非常简单,使用者只需点击程序 上的一个按钮,程序界面上就会显现“跟我来学 VB 神 童教程”字样。 ,2,、开发思路: 根据应用程序要实现的功能,那么我们至少需要制作一 个按钮、一个程序界面,为了让应用程序更 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 ,我们 还需要创建一个用来显示“跟我来学 VB 神童教程” 字样的容器。 图五 ,3,、具体制作过程: 再创建一个标签按钮,双击如图六的图标: 1、创建一个新的“标准 EXE”文件,如第一步所做。 需要指出的是,这个以 Form1 为标题栏的程序界面就 是我们需要的“程序界面”,也是用户首先看到的对象, 所以尽可能将其做得美观一点。 当然,对应用界面的美化问题我们将在以后探讨。 2、根据开发思路,现在我们来制作按钮。 双击工具箱面板上的命令按钮(Command Button)图标,图六 如图三: 完成后程序界面如图七: 图三 3、对按钮属性进行设置: 开发任何应用程序,在完成界面布局后,应该就每一个 元素进行属性设置以达到自己的要求。当然,也可以在 元素布局的过程中进行属性设置。 首先点选箭头状的 “选择”图标以便进行选择,如图十: 图十 选中程序界面上的命令按钮,然后找到属性面板,如图 十一: 图七 用鼠标拖动标签按钮到合适位置,如图八: 图十一 其中,“名称:Command1”是此按钮的名称,主要用于 程序引用,所以不要用中文名字。 此处,可以不修改 按钮的名字,但为了程序更规范,我们将其名字改成 “CmdShow”,如图十二: 图八 将鼠标放在标签按钮左右边缘任意一处,当鼠标呈左右 键头时横向拖动,把标签按钮拖长,最后的程序界面如 图九: 图十二 “Caption:Command1”是命令按钮的标题,也就是显 示在命令按钮上的字样, 我们将其改成“显示”,如图十三: 图九 图十三 用上面的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,我们将标签按钮的名字改为“LblShow”, 如图十四: 图十六 在光标闪烁处输入代码:LblShow.Caption = "跟我来学 VB 神童教程"(这句程序是什么意思,以后我们讲 述)。如图十七: 图十四 将标签按钮的标题改成空字符串,也就是没有任何文 字,如图十五: 图十七 输入完毕,点击右上角的 “X” 回到对象窗口,然后 点击工具栏上的“启动”按钮(快捷键:F5),可以看 最终结果了~ 四、 知识点 高中化学知识点免费下载体育概论知识点下载名人传知识点免费下载线性代数知识点汇总下载高中化学知识点免费下载 : 1、我们的第一个程序确实非常简单,但它道出了程序 设计的基本方法:首先,应用程序要用来做什么,也就 是开发应用程序的目的;其次,应用程序大体上由哪些 元素组成,也就是应用程序的操作界面如何,如果可 图十五 能,最好先用笔把程序界面画出来;然后是对程序界面4、输入程序代码: 中每一个元素的属性进行设置;最后输入程序代码和调我们前面讲到的元素布局、属性设置只不过是对应用程试。 序操作界面的定制,要让程序实现功能,关键还得输入2、前面我们所谈到的“命令按钮”、“标签按钮”,其实程序代码。 选中命令按钮 CmdShow ,然后双击它,它们准确的说法是“命令按钮控件”、“标签按钮控件”,弹出如图十六的程序代码输入窗口: 无论是这些控件,还是刚才作为应用程序界面的“窗 体”,都是“对象”,因此, VB 是一门面向对象的编 程语言,每一个对象都具有很多属性,如大小、位置、 标题等等。属性的设置通过属性窗口完成。 3、这一点的内容不需强记,在以后的控件讲述中将会 涉及。 除了“命令控钮控件”、“标签按钮控件”,默认的工具 箱面板上还有“指针”工具(用来选择程序设计窗口中 的对象)、图片控件(在界面上添加图片)、文本框控件 (在界面上显示文本或用来输入文本)、选项框控件(主 要用来作为区域划分的控件,一般把相同类型的控件放 置在一个选项框中,把其他类型的控件放在其他选项框 中)、复选控件(用来制作复选按钮)、单选控件(制作 单选按钮)、组合框控件(用来制作功能更为强大的列 表框,既有文本框控件的功能,还有列表框控件的功 能)、列表框控件(制作各种列表)、滚动条控件(共有 横向与竖直两种)、时钟控件(一般用来添加时间触发)、 文件操作控件(共有磁盘列表框控件、文件夹列表框、 文件列表框三种),另外,还有绘图控件、图像框控件、图十九 、在前面的例子:LblShow.Caption = "跟我来学 VB 神日期控件。 7 4、VB 提供了丰富的控件选择,除了默认的工具箱面童教程"中,“,”并不是数学中的等号,而是一种赋值板上的控件外,还有很多控件没有罗列出来,我们可以符号,表示:将“跟我来学 VB 神童教程”这个字符通过“工程‖部件”命令或在工具箱面板上单击鼠标右串赋值给 LblShow ,并作为它的标题。 键,在弹出的快捷菜单中选择“部件”命令,弹出如图另外如:X = X+6 ,在数学中,这种表达式不存立,而十八的窗口: 在 VB 中,是指在 X 本来的基础上加 6 ,然后把结 果重新赋给 X ,这时 X 的值不再是原来的数字,而 是加上 6 后的值。 8、程序的保存: 在 VB 中进行保存,常常用“保存工程”命令,而在 保存过程中,必须保存两次,一次是以 .frm 为扩展名 的文件保存,另一次是以 .VBP 为扩展名的文件保存。 前者是保存应用程序的窗体文件,后者是保存应用程序 的工程文件。如图二十与图二十一: 图十八 本窗口罗列了当前系统中所有的控件,只需选中所需控 件前面对应的复选框就行了。 5、编写程序应该养成好习惯,在给每一个对象命名时 首先要保证规范,其次要能“望文生义”,也就是看见 一个对象的名字就能知道它是做什么的,如前面我们给 命令按钮控件起名为“CmdShow”,一看就知道是用来 图二十 Show 的 Command 类型控件。 6、我们最初进入的程序设计界面是对象界面,进入代 码界面的办法很简单,前面用到的双击控件是一种办 法,另外还可以通过点击项目窗口中的“查看代码”按 钮进入,如果点按旁边的“查看对象”按钮就会又回到 原来的对象界面。如图十九: 图二十一 vb神童教程第二章第一节——Label 控件 在第一章,我们已经知道,任何一个 VB 程序都是由 操作界面及与之相应的程序代码组成,而操作界面则是效果,如图二显示的两个标签: 由诸如“命令按钮控件”、“标签控件”等控件以及窗体 共同组成。从本章开始,我们进入控件的学习过程。 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”,等等,不响应鼠标点击的意图。 过,这些字体名称必须是电脑上有的。 2、BorderStyle(边框)属性: 字体大小改变:标签名.FontSize = X ,其中,X 是阿本属性用来设置标签的边框类型,有两种值可选:0,拉伯数字,代表字体是几号字。如:LblShow.FontSize = 代表标签无边框;1,代表标签有边框,并且具有三维11 。 粗体(FontBold)、斜体(FontItalic)、下划线所谓的事件,其实就是用户对应用程序的操作,如第一(FontUnderline)、删除线(FontStrikethru)属性的设置章中用鼠标点击命令按钮触发的 Click 事件。 值是代表真/假的逻辑判断值 True/False ,如下: 事件的作用在于触发程序的执行,如第一章中的 Click LblShow.FontBold = True/False 事件改变了标签控件的 Caption 属性。 LblShow.FontItalic = True/False 标签控件的主要作用在于显示文本信息,但也支持一些习题二:一个标签(LblShow)用于显示文本;按钮1为数不多的事件。 (Cmd1)可以让标签显示的字体变成隶书;按钮2、Click 事件(鼠标单击): 1 Cmd2)可以让标签显示的字体变成 13 号字;按钮3用鼠标点击标签时触发的事件,如改变标签的字体属( (Cmd3)可以让字体变成粗体。 性: 答案:见本节最后的答案区。 Private Sub LblShow_Click() 4、Alignment(对齐)属性: LblShow.FontName = "隶书" 此属性用来设置标签上显示的文本的对齐方式,分别End Sub 是:左对齐,0;右对齐,1;居中显示,2。可以在界2、DbClick 事件(鼠标双击): 面设置时设定,如图五: 鼠标双击引发的事件,如改变标签的可见性: Private Sub LblShow_DbClick() LblShow.Visible = False End Sub 三、知识点: 1、用 VB 编写程序犹如搭积木,把每块“积木”(控 件或其他对象)放在合理的位置,然后以某种机制(程 序)将这些“积木”们运用起来,最后就搭成了我们需 要的东西。所以,掌握每一种控件,包括它们的属性与 主要事件,是我们学习编程的基础~ 图五 2、某些属性是大多数控件所共有的,如 Name 、也可以在程序中改变,代码如下: FontBold、FontItalic、Visible ,等等;但也有些属性是标签名.Alignment = 0/1/2 某个控件所独有的,如标签控件的 WordWrap (标签5、Visible(可见)属性: 的标题显示方式)。本节中我们只是讲述了部分标签控本属性在大多数控件中都有,它能设定该控件是否可件的属性,其他属性可以在 VB 的帮助文件中查找到。 见。当值为 True ,控件可见;当值为 False ,控件隐3、大家在学习过程中一定会疑惑,为什么在属性设置藏。 控件的可见属性可以在界面设置时设定,如图六: 时,“,” 右边有时使用 "" ,有时又不使用 "" 。不 知大家注意到没有,我们在使用 "" 时,是因为引号里 面的内容是字符串,如"隶书"、"Times New Roman", 等等。 4、字符的大小写问题:初学者还常常疑惑,字母什么 时候应该大写,什么时候应该小写,其实,大写小写在 VB 程序中都是一样的,但为了让程序编写得更为规 范,程序可读性更高,英文单词的第一个字母一般都要 大写,如 Visible 、Name ,等等; 控件的命名也遵循以上原则,不同的是,命名都是由“控 件类型名,具体名字”组成的,控件类型名的第一个字 图六 母要大写,具体名字的第一个字母要大写,如 也可以在程序中改变,代码如下: 标签名.Visible = LblShow 、CmdShow 、LblChange ,等等。 True/False 5、程序代码的规范:上面有这样的例子: 习题三:一个标签(LblShow),在界面设置时为可见;Private Sub CmdShow_Click() 按钮1(Cmd1),能够让标签隐藏;按钮2(Cmd2),LblShow.Caption = "跟我来学 VB 神童教程" 能够让标签显现。 End Sub 答案:见本节最后的答案区 Private Sub CmdShow_Click()代表一个过程,共由两部二、标签控件(Label)的主要事件: 分组成,CmdShow 代表 CmdShow 这个按钮,Click 代 表这个按钮的触发事件。 以此类推,Private Sub LblShow_DbClick ()也代表一个 过程,LblShow 是个标签,DbClick 是双击事件。 另外,Private 意为“私有”,表明这个事件过程的类型; 此外还有 Public 即“公有”事件。 Sub 表明这个过程是“子程序”,若干个“子程序”共图一 同组成最终的应用程序。 TextBox 控件主要用来显示文本或用来输入文本,如 ()里面是用来装参数的,关于参数,我们以后讲述,如Windows 登陆时的“口令”窗口,或者记事本的整个编果没有参数,()里面为空。 辑区域。 四、答案区: 双击工具箱中的文本框控件或者单击文本控件,然后用第一题: 鼠标在 VB 的工作区域拖拉,就可以创建文本框了。第一个按钮的点击事件: 如图二: 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: 文本框控件的默认名称为 TextX(X为 1、2、3,等等),Private Sub Cmd2_Click() 命名规则为 TxtX(X为用户自定义的名字,如 LblShow.FontSize = 13 TxtShow、TxtFont、TxtColor ,等等) End Sub 一、文本框控件的主要属性: 按钮3: 1、Text(文本)属性: 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 图三 也可以在程序中动态修改,程序代码规则: vb神童教程第二章第二节——TextBox控件 在 Visual Basic 操作界面中,TextBox(文本框)控文本框控件名.Text = "欲显示的文本内容" 件所代表的图标如图一: 如要在一个名为 TxtFont 的文本框控件中显示“隶书” 字样,那么输入代码: TxtFont.Text = "隶书" 习题一:创建一个文本框(TxtContent)用来显示文本; 按钮一(Cmd1),点击时文本框内容变为“跟我来学 VB神童教程”;按钮二(Cmd2),点击时文本框内容清 空(也就是没有内容)。 答案:见答案区。 2、SelText(选中文本)属性: 本属性返回或设置当前所选文本的字符串,如果没有选 中的字符,那么返回值为空字符串即""。 请注意,本属性的结果是个返回值,或为空,或为选中 的文本。 一般来说,选中文本属性跟文件复制、剪切等剪贴板(在 VB 中,剪贴板用 Clipboard 表示)操作有关,如要将 文本框选中的文本拷贝到剪贴板上: 图四 Clipboard.SetText 文本框名称.SelText(注意,本行没有也可以在设计时予以改变,代码如下: 表示赋值的等号。) 文本框控件名.Maxlength = X(X为阿拉伯数字,如 10、要将剪贴板上的文本粘贴到文本框内: 20、57,等等)。 文本框名称.SelText = Clipboard.GetText(注意,本行有5、MultiLine(多行)属性: 表示赋值的等号。) 本属性决定了文本框是否可以显示或输入多行文本,当例:一个文本框(TxtContent),按钮一(CmdCopy)用值为 True ,文本框可以容纳多行文本;当值为 False ,于复制文本框中的选中文本;按钮二(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 ,选中文本的长度,返回的是选中文本的字6、PasswordChar(密码)属性: 符串个数。 例如:文本框 TxtContent 中有内容如下: 本属性主要用来作为口令功能进行使用。例如,若希望跟我一起学习 VB 神童教程 在密码框中显示星号,则可在“属性”窗口中将 假设选中“一起学习”四个字,那么,SelStart 为 3 ,PasswordChar 属性指定为 “*” 。这时,无论用户输SelLength 为 4 。 入什么字符,文本框中都显示星号。如图六: 4、MaxLength(最大长度)属性: 本属性限制了文本框中可以输入字符个数的最大限度, 默认为 0 ,表示在文本框所能容纳的字符数之内没有 限制,文本框所能容纳的字符个数是 64K ,如果超过 这个范围,则应该用其他控件来代替文本框控件。 这跟 Windows 中用记事本打开文件一样,当文件过大, 系统会自动调用写字板来打开文件,而不是用记事本。 文本框控件 MaxLength 属性既可以在界面设置过程中 予以指定,如图四: 图六 在 VB 中,PasswordChar 属性的默认符号是星号,但 你也可以指定为其他符号。但请注意,如果文本框控件 的 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 End Sub 文本前点击鼠标,按下左键不放,拖动鼠标直到选择文 本的结束处,最后松开鼠标。这说明,松开鼠标代表着vb神童教程第二章第三节——综合示例一 在前面两节里,我们学到了 VB 的操作方法,以及 文本选择的结束,从而应该在文本框的鼠标弹起事件Label 与 TextBox 控件的使用方法,现在我们用这两节(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 (TxtContent),它将做为程序的输入窗口;另外还有四End Sub 个按钮,分别是复制按钮(CmdCopy)、粘贴按钮注意:这个 “&”符号表示将两个字符串连接起来。另(CmdPaste)、清除按钮(CmdClear)、退出程序按钮外如: A & B ,结果是 AB ;ABC & EFG ,结果是 (CmdQuit);此外,还需要两个用来显示所选文本起始ABCEFG ,等等。 位置的标签一(LblStart)和显示所选文本长度的标签二2、复制按钮的点击事件: (LblLength)。 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 如图一所示,但请注意,文本框控件的 Multiline(多行)五、运行调试: 属性要设置为 True ,这样,文本框才能自动换行。如按 F5 键,或者点按运行按钮,这个简单的文本编辑器图二: 可以用了吗, 六、控件的一些基本操作: 在 VB “菜单栏”中有一个“ 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 ”命令,通过它提 供的一些功能可以让我们的工作事半功倍。 1、对齐: 分别是纵向对齐的“左对齐”、“居中对齐”、“右对齐”; 横向对齐的“顶端”、“中间”、“底端”对齐;以及面向 网格的“网格对齐”。它们的功能非常简单,你只需随 意绘制几个控件,然后选择它们,再试着使用相关命令 就能掌握了。如图三是随意绘制的程序界面: 图二 四、程序书写: 1、文本框(TxtContent)的鼠标事件: 对文本的选择,可以理解为这样的过程:先在欲选择的 命名规则为 CmdX(X为用户自定义的名字,如 CmdCopy、CmdPaste ,等等)。 一、CommandButton 的主要属性: 1、Cancel(取消)属性: 当一个按钮的 Cancel 属性设置为 True 时,按 ESC 键与单击此命令按钮的作用相同,因此,这个命令按钮 被称为取消按钮。 在一个窗体中,只允许一个命令按钮的 Cancel 属性为 True 。如图二: 图三 全部选中后,使用“左对齐”的结果如图四: 图二 、Default(默认)属性: 2 当一个按钮的 Default 属性设置为 True 时,按回车键 与单击此命令按钮的作用相同,因此,这个命令按钮被 称为默认按钮。 与 Cancel 的设置一样,在一个窗体中, 图四 只允许一个命令按钮的 Default 属性设置为 True ,如也许你要问,这个对齐是以哪一个控件做为参照物的,图三: 再仔细看看图三,那个 Command1 按钮四周是八个实 心的黑色小点,而其他控件则是白色的小点,现在你知 道了吧,正是以 Command1 按钮为参照物进行对齐的, 也就是说你最后选择的那一个控件。 2、统一尺寸: 以某个控件为参照物,统一其他控件的大小尺寸。 3、水平间距与垂直间距: 调整某几个控件的水平间距或垂直间距。 活用上面几个操作,将使你的工作事半功倍~ vb神童教程第二章第四节——CommandButton 图三 控件 在 Visual Basic 操作界面中,CommandButton(命令按3、Caption(标题)属性: 钮)控件所代表的图标如图一: 跟其他控件的 Caption 属性一样,都用来显示控件标题 的属性。这里要强调的是,作为按钮控件,用户可以给 按钮控件的 Caption 指定快捷方式。 方法是在按钮 Caption 属性中欲作为快捷键的字母前 加上一个 “&” 符号,程序运行时,该字母的下面会 自带一条下划线,同时按下 Alt 键和带有下划线的字 母,功效相当于用鼠标点击该按钮。如图四: 图一 CommandButton 控件在程序中主要作为按钮进行使 用。默认的名称为 CommandX(X为 1、2、3,等等), CmdFalse.Enabled = True CmdEnable.Enabled = False End Sub 按钮二: Private Sub CmdFalse_Click() CmdFalse.Enabled = False CmdEnable.Enabled = True End Sub 、Style(类型)与 Picture(图片)属性: 5 也许你想让应用程序的操作界面更美观一点,也许你想图四 、Enabled(可用)属性: 在某个按钮上添加幅小图片,那么,你就得使用到本控4 本属性决定了控件是否可用的问题。当值为 False ,按件的 Style 与 Picture 属性。 钮在程序运行时呈灰色,不能响应用户的鼠标动作;只铵钮控件共有两种 Style ,一种是标准型(Standard),有当值为 True ,按钮才能使用。 本属性可以在设置VB 中用 VbButtonStandard ,或者 0 表示;另外一种界面时予以指定,如图五: 是图形型(Graphical),VB 中用 VbButtonGraphical , 或者 1 表示。 Style 属性可以在界面设置过程中予以 指定,如图七: 图五 也可以在程序中修改,代码如下: 按钮控件名 称.Enabled = True/False 图七 例一: 也可以在程序中改变,代码如下: 两个命令按钮,按钮一(CmdEnable)初始状态为可用,按钮名称.Style = VbButtonStandard/VbButtonGraphical 按钮二(CmdFalse)初始状态不可用。点击按钮一,按或者:按钮名称.Style = 0/1 钮二变为可用,按钮一变为不可用;点击按钮二,按钮只有当按钮的 Style 设置为 Graphical 类型时,按钮的 一变为可用,按钮二变为不可用。 Picture 属性才起作用。本属性能在指定的按钮上添加程序界面如图六: 图片。 可以在界面设置过程中为按钮指定图片,如图八: 图八 图六 也可以在程序中进行指定,代码如下: 程序代码如下: 按钮名称.Picture = "图形文件所在的路径与文件名",例按钮一: 如:CmdPicture.Picture = "D:\image\01.jpg" Private Sub CmdEnable_Click() 二、CommandButton 的事件: 命令按钮最常用的事件是鼠标点击(Click)事件,当点 击按钮时,犹如发出了一道命令,而这也正是“命令按 钮”这个说法的由来。 vb神童教程第二章第五节——单选与复选控件 在 Visual Basic 中,单选与复选按钮控件主要作为选项 提供给用户选择。不同的是,在一组选择按钮中,单选 控件只能选择一个,其他单选控件自动变为未被选中状 态;而在一组复选按钮中,可以选定任意数量的按钮。 一、单选控件(OptionButton)与复选控件(CheckBox) 的主要属性: 单选控件默认名称为 OptionX(X为阿拉伯数字 1、2、 3,等等),起名规则为 OptX(X为用户自定义名字,图二 如 OptRed、OptArial,等等);复选控件默认名称为 文本框(TxtContent)显示预设的字样;单选按钮一CheckX(X为 1、2、3,等等),起名规则为 ChkX(X(OptArial),单击此按钮可以将文本框里显示的字样改为用户自定义名字,如 ChkName、ChkRed ,等等)。 变成 Arial 字体;单选按钮二(OptModern),单击此按在 VB 操作界面中,单选控件与复选控件的图标如图钮能将文本框里显示的字样改变成 Modern 字体。 一所示: 1、单选按钮一: Private Sub OptArial_Click() TxtContent.FontName = "Arial" End Sub 2、单选按钮二: Private Sub OptModern_Click() TxtContent.FontName = "Modern" 图一 End Sub 以前讲到的大多数属性都适用于单选与复选控件,包四、复选按钮的判断过程: 括:Caption、Enabled、Font(FontBold、FontItalic、复选按钮的使用跟单选按钮相似,但由于一次可以选择FontName,等等)、Name、Height ,等等,此处不再多个复选按钮,所以复选按钮的选择比单选按钮多了一赘述。 个判断过程。 Value 属性是单选与复选控件最主要的属性,但单选与这个判断过程在 VB 中可以用 复选控件的 Value 值有些微的差别。 If???Then???ElseIf???End If 语句完成。 单选控件: If???Then???ElseIf???End If 是 VB 中的块结构条选中时,Value 值为 True ;未被选中,Value 值为 件语句,主要用来针对不同的情况,让应用程序做出不False 。 同的反应。 复选控件: 语句功能如下: 选中时,Value 值为 1 ;未被选中,Value 值为 0 ;If 假设情况一 Then 禁止对该按钮进行选择, Value 值为 2 。 假设情况一成立时执行的语句块一 请大家注意,单选控件与复选控件的 Value 值是不同,ElseIF 假设情况二 Then 的,而这是初学者最容易混淆的。 假设情况二成立时执行的语句块二, 二、单选按钮与复选按钮的事件: ,ElseIf 假设情况三 Then 这两种控件最主要的事件是 Click 事件,当选中时, 假设情况三成立时执行的语句块三, Value 值变为 True 或者 1 ,控件也自动变为选中状?????? 态。 ,Else 三、单选按钮程序举例: 所有条件都不成立时要执行的语句块, 有如图二这样一个程序: End If 上面的语句块含义为:如果“情况一”成立,则执行“语 句块一”;否则如果“情况二”成立,则执行“语句块 二”??????;如果所有情况都不成立,则执行 Else 之后 的语句块并最后跳出判断过程。 例: 选按钮三(ChkUnderline)可以给文本框里面的文字加假设输入学生成绩(Score),如果分数小于 60 ,标签上下划线。 (LblShow)显示“成绩不及格”;如果分数大于 90 ,复选按钮一: 标签显示“成绩优秀”;如果分数介于两者之间,标签Private Sub ChkBold_Click() 显示“成绩优良”。 If ChkBold.Value = 1 Then If Score < 60 Then TxtContent.FontBold = True LblShow.Caption = "成绩不及格" Else ElseIf Score > 90 Then TxtContent.FontBold = False LblShow.Caption = "成绩优秀" End If Else End Sub LblShow.Caption = "成绩优良" 复选按钮二: End If Private Sub ChkItalic_Click() 有几点必须加以注意: If ChkItalic.Value = 1 Then (1)、在上面的语句块中,ElseIf 之间没有空格,如果 TxtContent.FontItalic = True 有空格即 Else If ,块结构则不成立。Else If 这种形式 Else 只能在单行结构条件语句中成立,而不能在块结构条件 TxtContent.FontItalic = False 中成立。 End If (2)、执行语句块的程序代码不能紧跟 Then ,必须放End Sub 到下一行中,这是块状结构的规定。 复选按钮三: (3)、在块结构判断语句中,ElseIf 子句的数量没有限Private Sub ChkUnderline_Click() 制,可以根据需要加入任意多个 ElseIf 子句。 If ChkUnderline.Value = 1 Then (4)、ElseIf 与 Else 都是可选的,最简单的判断语句 TxtContent.FontUnderline = True 块形式如下: Else If 条件 Then TxtContent.FontUnderline = False 要执行的语句块 End If End If End Sub 如:If Score < 60 Then 联想: LblShow.Caption = "成绩不及格" 复选按钮是不是非得经过这种选择判断,能不能如单 End If 选按钮那样直接使用呢,这是许多初学者,包括笔者自(5)、块结构语句必须以 If 开始,以 End If 结束。 己,曾经感到疑惑的地方。(虽然现在看来它们的区别五、复选按钮举例: 是如此之大) 上面我们学习了复选按钮的判断过程,现在进入实例学还是上面这个例子,假设复选按钮一不经过判断,而直习。 有如图三这样一个应用程序: 接在点击事件中输入代码: Private Sub ChkBold_Click() TxtContent.FontBold = True End Sub 那么你会发现,复选按钮一经点击就不能取消字体加粗 的效果了;而实际上,复选按钮一的功能是,点击一次 即选中时,字体加粗;点击第二次即取消选择,字体不 再加粗;以此类推。 六:知识点: 1、切记,单选按钮与复选按钮的 Value 值是不同的。 单选按钮: 选中时,Value 值为 True ;未被选中时,Value 值为 图三 False 。 文本框(TxtContent)显示预设的字样;复选按钮一复选按钮: (ChkBold)可以将文本框里面的字变为粗体;复选按选中时,Value 值为 1 ;未被选中时,Value 值为 0 ;钮二(ChkItalic)可以将文本框里面的字变为斜体;复禁止选择,Value 值为 2 。 你可以试验一下,将复选按钮的 Value 值分别用 OptRoman 按钮: True/False 代替,看一下会出现什么问题。 Private Sub OptRoman_Click() 2、两种选择按钮都针对 Click 事件做出反应,但单选 TxtContent.FontName = "Times New Roman" 按钮比较简单,只需直接输入代码即可;复选按钮比较End Sub 复杂,需经过条件判断后再做出反应。切记~ ChkBold 按钮: 3、 If???Then???ElseIf???End If ,只是条件判断方Private Sub ChkBold_Click() 法的一种,以后我们还会学到其他的方法。 If ChkBold.Value = 1 Then TxtContent.FontBold = True vb神童教程第二章第六节——综合示例二 在前面两节中,我们学习了命令按钮 Else (CommandButton)、单选按钮(OptionButton)、复选 TxtContent.FontBold = False 按钮(CheckBox)的使用,本节将就前两节的知识做个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 一个文本框(TxtContent),显示“Learning Visual Basic”End Sub 字样;三个单选按钮:按钮一(OptArial)让文本字体 五、分组控件(Frame)的学习: 变为 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 简单地说,选项框控件是将不同的选项分类,在某一类 里只能多选一,但多个类别的交叉使用,可以完成比较表项中的内容。可以在界面设置时直接输入内容,如图复杂的多项选择。 三: 不仅仅如此,我们还可以将单选按钮、多选按钮分组, 不同组内的操作不会影响其他组的操作。如图三: 图三 在程序运行时,列表框中所有的选项,都可以通过 图三 List(下标值) 的形式表示。比如列表框中的第一项,用 分组控件的制作方法: List(0)表示,列表框中的第二项,用 List(1)表示,列表先在窗体上绘制合适大小的框架,然后点选单选控件或框中的第十项,用 List(9)表示,以此类推。 多选控件,最后将鼠标移到框架内并拖拉出选项按钮。 大家注意,列表框中的第一项,是 List(0) ,而不是 注意:请不要使用双击选择按钮控件然后将其拖动到分List(1) 。 组框内的办法,否则,分组会失败。 ,1,、List() 属性的使用是非常灵活的,比如我们要从 如图二的列表框(Lst1)中取出第三项内容,可以用下vb神童教程第二章第七节——列表框控件 Visual Basic 提供了列表框控件(ListBox)以供用户进面的代码做到:A$ = Lst1.List(2) 行多个项目的选择。在工具箱面板上,列表框控件的图其中,A 是一个变量;$ 指明了这个变量的类型:字符标如图一所示: 串型;这句话的意思是:将 Lst1 列表框中第三项 (List(2))取出来然后赋值给字符串变量 A 。 象上面这种赋值办法,在 VB 中是非常普遍的,又如 以前我们学到的: LblShow.Caption = "Visual Basic",这句话是指将 Visual Basic 这个字符串赋值给 LblShow 标签控件并作为其 图一 标题。 默认的列表框控件名为 ListX(X为阿拉伯数字 1、紧接上面的内容,假设我们用一个标签显示出刚才取出2、3,等等),规则的命名方式为:LstX(X为用户自的表项: 定义的名字,如 LstName、LstUser,等等)。 LblShow.Caption = A$ 一、列表框控件的主要属性: 那么显示的结果正是我们取出的选项。 列表框中可以有多个项目供选择,用户通过单击某一项可见,取出某个列表框中的某一表项并将其赋值给某个选择自己所需要的项目,如果项目太多,超出了列表框变量,代码如下: 设计时的长度,则自动增加竖向滚动条,如图二: 字符串变量 = 列表框名称.List(X) ,其中,X 是下标。 ,2,、通过 List() 改变原有表项:假设我们要将如图 二的列表框中第三项内容改为“跟我学 VB”,只需输 入下面的代码即可: Lst1.List(2) = "跟我学 VB" 上句话的意思是将“跟我学 VB”字符串赋值给 Lst1 并 作为其第三项的内容。 图二 结果如图四: 除了一些常见的诸如 Font 、Height、Left、Width、 Enabled、Name 等属性外,列表框还有一些特殊的属性: 1、List(列表)属性: List 是列表框最重要的属性之一,其作用是罗列或设置 择这一项,那么又应该如何访问这第三项呢, 代码如下:A$ = Lst1.List(Lst1.ListIndex) 此时, Lst1.ListIndex 等同于 2 。 仔细想一想,为何要如此书写, 4、Columns(列)属性: 本属性用来确定列表框的列数,当值为 0 时,所有项 目呈单列显示;当值为 1 或者大于 1 ,项目呈多列显 图四 示。Columns 属性只能在界面设置时指定。如图六: 可见,要修改某个列表框中某一选项: 列表框名称.List(X) = "欲修改成的内容" ,其中,X 是 下标。 2、ListCount 属性: 本属性返回列表框表项数量的数值,只能在程序运行时 起作用。比如:一个有着四种选项的列表框,那么 ListCount 就为 4 ;一个列表框有五个选项,那么 ListCount 就为 5 。 返回一个列表框的表项数量值并将其赋值给某个变量, 图六 代码如下: 默认状态时,如果项目的总高度大于列表框的高度,那数值型变量 = 列表框名称.ListCount 比如要返回图二列表框的 ListCount: 么列表框右边会自动增加一个垂直滚动条,用来上下移X% = Lst1.ListCount ,其中,X 是变量,% 表示X是动列表框。 整数类型的变量。 5、MultiSelect(多重选择)属性: 、ListIndex(索引)属性: 属性决定了选项框中的内容是否可以进行多重选择,3本 本属性用来返回或设置控件中当前选择项目的索引号,只能在界面设置时指定,程序运行时不能予以修改。如只能在程序运行时使用。第一个选项的索引号是 0 ,图七: 第二个选项的索引号是 1 ,第三个选项的索引号是 2 ,依此类推,ListCount 始终比最大的 ListIndex 值 大 1 。当列表框没有选择项目时, ListIndex 值为 -1 。 在程序中设置 ListIndex 后,被选中的项目呈反相显 示,如图五: 图七 MultiSelect 共有三个值:0 ,不允许多项选择,如果选 择了一项就不能选择其他项;1 ,允许多重选择,但功 图五 能不如 2 ,可以用鼠标或空格选择;2 ,功能最强大在列表框控件的所有属性中,本属性是非常重要的,因的多重选择,可以结合 Shift 键或 Ctrl 键完成多个表为一个列表,事先你并不知道用户将要选择哪一条项项的多重选择。方法是:单击所要选择的范围的第一项,目,这时,只有根据 ListIndex 返回的数值,我们才能然后按住 Shift 键,再单击选择范围最后一项。 让程序针对用户的选择做出适当的反应。 6、Style(类型)属性: 返回 ListIndex 的代码如下: 本属性决定了列表框的外观,共有两个值:1 ,X% = 列表框名称.ListIndex Standard ,即为标准型,如图八: 联想:根据前面的知识我们知道,要取出第三项内容, 代码如下: A$ = Lst1.List(2) 假设现在选中的是第三项,但我们事先不知道用户要选 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 图八 本程序是根据用户选择的不同,在标签按件中显示不同2 ,CheckBox ,复选框型,如图九: 的信息;另外,我们用到了前面学到的 If ???Then??? ElseIf??? End If 语法。 8、SelCount(选中项目数量): 只有当 MultiSelect 属性值为 1 或 2 时,本属性才起 作用,用来读取列表框中所选项目的数目,通常与 Selected 一起使用,以处理控件中的所选项目。 二、列表框控件的主要事件: 列表框控件主要接收 Click 与 DblClick ,如例一。 三、列表框控件的方法: 图九 1、增加项目:AddItem 本属性只能在界面设置时确定。 AddItem 可以为列表框增加项目,代码规则如下: 用 7、Selected(选中)属性: 列表框名称.AddItem 欲增项目,,索引值, 本属性返回或设置在列表框控件中某项目是否选中的其中,索引值是可选项,是指欲增项目放到原列表框中状态。选中时,值为 True ;未被选中,值为 False 。 的第几项,如放在第三项,那么索引值是 2 ,放在第代码规则如下: 列表框名称.Selected(索引值) = 五项,索引值则是 4 。 True/False 假设我们要在如图十这样的程序中增加项目:注意,索引号其实是项目的下标值,如果是第三项,那LstName.AddItem "郝海东",4 么索引值是 2 ,如果是第十项,那么索引值是 9 ,以2、清除所有:Clear 此类推。 用 Clear 可以清除列表框中所有的内容,代码如下: 例一: 列表框名称.Clear 有如图十这样一个应用程序: 3、删除选项:RemoveItem 此方法可以删除列表框中指定的项目,代码如下: 列表框名称.RemoveItem 索引值 其中,索引值是必须的,表示欲删除哪一个项目。 同样如图十的程序,假设我们要删除第三个项目,代码 如下: LstName.RemoveItem 2 联想:对于任意一个列表框,要删除已经选中的项目, 代码如下: 列表框名称.RemoveItem 列表框名称.ListIndex 比如:LstName.RemoveItem LstName.ListIndex 图十 为什么这样写,请大家仔细想想。 列表框(LstName)中是人物的名称,用户选择不同的四、知识点: 名字,下面的标签(LblShow)自动显示此人的相关信1、本节的难点在于 List() 、ListIndex ,请大家一定要息。 把它们吃透。 源代码如下: 2、本节提到了变量,关于它们的详细情况,我们将在Private Sub LstName_Click() 以后学习,目前大家只需要知道,这里的变量只是个临 If LstName.Selected(0) = True Then 时工,主要用来储存一些临时数据。 图三 vb神童教程第二章第八节——组合框控件 组合框控件(ComboBox)将文本框控件(TextBox)当值为 2 ,组合框称为“下拉式列表框”(Dropdown 与列表框控件(ListBox)的特性结合为一体,兼具文本ListBox),它的右边有个箭头,可供“拉下”或“收起”框控件与列表框控件两者的特性。它可以如同列表框一操作。它不能识别 DblClick 及 Change 事件,但可识样,让用户选择所需项目;又可以如文本框一样通过输别 Dropdown 、Click 事件,如图四: 入文本来选择表项。 组合框默认的名称是 ComboX(X为阿拉伯数字 、2、3 ,等等),规则的命名方式为:CboX(X为用1 户自定义的名字,如 CboName、CboColor ,等等)。 组合框在 VB 工具箱面板中的图标如图一: 图四 图一 综上所述,如果你想让用户能够输入项目,则应将组合一、组合框控件的主要属性: 框设置成 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 方法。 四、组合框举例: 有如图六这样一个应用程序: 边列表框;点击全部向右按钮(CmdAllRight),可以将 左列表框中所有的内容搬到右列表框中;点击向左按钮 (CmdLeft),可以将右列表框中选定的表项移动到左列 表框中;点击全部向左按钮(CmdAllLeft),可以将右 列表框中的所有内容移动到左列表框中。 三、属性设置: 见图一,注意,列表框的 Style 都为 0 即标准类型。 四、程序代码: 1、窗体的载入事件(Form_Load) Private Sub Form_Load() LstLeft.AddItem "刘德华" 图六 LstLeft.AddItem "张学友" 在名为 CboChoose 的下拉组合框中任意选择一种机 LstLeft.AddItem "郭富城" 型,自动会在名为 LblShow 的标签上显示出来。 LstLeft.AddItem "黎 明" 程序代码如下: LstLeft.AddItem "谭咏麟" 窗体: Private Sub Form_Load() LstLeft.AddItem "梅艳芳" CboChoose.AddItem "IBM" LstLeft.AddItem "张曼玉" CboChoose.AddItem "AST" End Sub CboChoose.AddItem "Compaq" 2、向右按钮的点击事件(CmdRight_Click) CboChoose.AddItem "联想" Private Sub CmdRight_Click() CboChoose.AddItem "长城" LstRight.AddItem LstLeft.List(LstLeft.ListIndex) CboChoose.AddItem "东海" LstLeft.RemoveItem LstLeft.ListIndex End Sub End Sub 下拉式组合框的 Click 事件: Private Sub 3、全部向右按钮的点击事件(CmdAllRight_Click) CboChoose_Click() Private Sub CmdAllRight_Click() LblShow.Caption = "你的机型是:" & CboChoose.Text LstRight.AddItem "刘德华" End Sub LstRight.AddItem "张学友" LstRight.AddItem "郭富城" vb神童教程第二章第九节——综合示例三 前面我们学了列表框控件(ListBox)与组合框控件 LstRight.AddItem "黎 明" (ComboBox),本节将就它们制作一个简单的应用程 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)罗列了一些歌手名字,LstLeft.AddItem "谭咏麟" 右列表框(LstRight)初始状态为空;点击向右按钮LstLeft.AddItem "梅艳芳" (CmdRight),可以将左列表框中的指定选项移动到右LstLeft.AddItem "张曼玉" LstRight.Clear End Sub End Sub 向左按钮: 五、注意事项: Private Sub CmdLeft_Click() 1、窗体载入事件: If LstRight.SelCount > 0 Then 就是窗体打开时自动加载的信息,也可以在界面设置时LstLeft.AddItem LstRight.List(LstRight.ListIndex) 通过左列表框的 List 属性设定。如图二: LstRight.RemoveItem LstRight.ListIndex End If End Sub 看见了吧,向左与向右按钮还得增加列表框中是否有表 项被选中的判断。 4、大家先移动左列表框中的一个项目到右列表框中, 然后再全部移过去,你又会发现什么样的问题呢, 这 时,你会发现右列表框的项目多了一项,而这多出来的 表项正是最先移过去的那个项目,那么,全部移动的按 钮还需要加以完善。如图四: 图二 2、无论是部分转移,还是全部移动,都要记着将本已 移动的表项在原有列表框中清除,如代码: LstLeft.RemoveItem LstLeft.ListIndex 如果不清除,那么表项移动后,原先的表项还在原处, 用户可能对同一表项多次选择。如图三 图四 解决办法很简单,在全部移动时,先清除目标列表框的 内容再进行移动,修改后的代码如下: 全部向右按钮: Private Sub CmdAllRight_Click() LstRight.Clear LstRight.AddItem "刘德华" LstRight.AddItem "张学友" LstRight.AddItem "郭富城" 图三 LstRight.AddItem "黎 明" 3、第一个应用程序还没编写完,仔细看一下,哪里还LstRight.AddItem "谭咏麟" 需要再编写,没错,就是向左按钮与向右按钮的点击事LstRight.AddItem "梅艳芳" 件还没完善,按照上面的程序,如果在初始状态下(也LstRight.AddItem "张曼玉" 就是没有选中任何表项),点击向左或向右按钮会产生LstLeft.Clear 程序错误。 所以我们得在原来向左或向右按钮的事件End Sub 中增加判断过程,修改后的代码如下: 全部向左按钮: 向右按钮: Private Sub CmdAllLeft_Click() Private Sub CmdRight_Click() LstLeft.Clear If LstLeft.SelCount > 0 Then LstLeft.AddItem "刘德华" LstRight.AddItem LstLeft.List(LstLeft.ListIndex) LstLeft.AddItem "张学友" LstLeft.RemoveItem LstLeft.ListIndex LstLeft.AddItem "郭富城" End If LstLeft.AddItem "黎 明" LstLeft.AddItem "谭咏麟" 用。 LstLeft.AddItem "梅艳芳" 2、示例一: LstLeft.AddItem "张曼玉" 编写一个程序,用来计算 1 到 100 间所有整数的和是LstRight.Clear 多少。 End Sub (1)、程序界面与控件属性: 5、本节的程序只是为了让大家便于理解才这样编写的,程序界面与控件属性如图一,为了让大家看得更为清而最为科学、最为有效的编写方法,我们将在下一节讲楚,我们将标签控件的 BoderStyle 属性设为 1 。 述。在开始下一节课程之前,大家可以将两个列表框的 1 即复选类型,你会发现本节所编写的程序Style 改成 又有很多问题了,该如何解决呢,下一节见~ vb神童教程第二章第十节——综合示例四 在上一节,我们制作了一个 Style 为 0 的列表程序, 现在我们来制作一个 Style 为 1 的列表程序。 虽然仅仅是 Style 的改变,但整个程序发生了完全 的变化。本节中的程序更为科学,而且只需改动几行代 码,同样适合上一节的程序。 在编制本节程序前,我们有必要对 For ??? Next ???循环结构语句做个了解。 一、For 循环语句: 在实际生活中,我们经常会遇到一些操作并不复杂,但图一 需要重复多次处理的情况,如人口统计、银行利率的计2)、程序功能: ( 算等,为此,Visual Basic 提供了循环语句来专门解决用户点击“开始”按钮(CmdStart)开始计算,完成后此类情况。 将结果用标签(LblShow)显示出来。 循环语句的具体情况,我们将在以后的章节中阐述,本(3)、书写代码: 节我们只是针对 For 循环语句做个大致的了解。 “开始”按钮的点击事件: 1、For ??? Next ???语句的一般格式: Private Sub CmdStart_Click() For 变量 = Start To End [Step] x = 0 ,需要循环的语句, For y = 1 To 100 ,Exit For, x = x + y Next 变量 Next y 说明: LblShow.Caption = "最后的结果是:" & x (1)、For 后的“变量”与 Next 后的“变量”为同一End Sub 个,“变量”应该是数值类型的。 说明: (2)、Start 代表的是循环的初始值,End 代表的是循(1)、1 到 100 中所有整数的和可以这样来看:1,2环的终值。假设从 1 到 100 进行循环,那么,循环初,3,??????,100 ,即 100 次相加,那么这重复的 值是 1 ,终值是 100 ;假设从 1 到 50 进行循环,100 次相加可以通过 For 循环来完成。 那么初值是 1 ,终值是 50 。 (2)、程序中 y 只是用来决定循环次数的变量,通常(3)、To 是循环中的关键字,表示从初值到终值的范的,我们会利用其他变量来编写程序,这里的 X 就是围,不能省略。 一个求和累加器,它的初值是 0 ,终值则是我们最后(4)、Step 是步长值,代表变量的增量,既可以是正数需要的数值。 (递增循环),也可以是负数(递减循环),但不能为 0 ,(3)、X = X +y ,是指变量 X 与 y 相加后将新的值如果步长值为 1 即默认状态,可以省略不写。 赋给 X 。当 X 为初始的 0 时,y 进入第一次循环即 (5)、需要循环的语句,既可以是一个,也可以是多个y = 1 ,X + Y = 1 ;系统将 X = 1 记录下来,然后进语句,但必须放在 For 与 Next 之间。 入第二次循环即 y =2 ,X + Y = 3 (1 + 2),然后将 X (6)、Exit For:当程序执行到此处,自动退出本层循= 3 记录下来并进入第三次循环,以此类推。这就将 1环。 ,2,3,??????,100 的最终值算了出来。 (7)、需要循环的语句与 Exit For 都可以省略,这时(4)、经过第一百次循环,程序执行 Next y 后的语句,表示的是一个无内容的空循环,主要做为程序延迟使即将最后结果用标签显示出来。 3、示例二: End Sub 计算 1 到 100 间所有奇数的和。 (2)、向右按钮的点击事件(CmdRight): 只需将上例中的“开始”按钮的循环程序加上步长值即Private Sub CmdRight_Click() 可。代码如下: Dim X As Integer Private Sub CmdStart_Click() While LstLeft.SelCount > 0 x = 0 For X = 0 to LstLeft.LstCount - 1 For y = 1 To 100 Step 2 If LstLeft.Selected(X) = True Then x = x + y LstRight.AddItem LstLeft.List(X) Next y LstLeft.RemoveItem X LblShow.Caption = "最后的结果是:" & x Exit For End Sub End If 二、列表程序二: Next X 1、程序界面: Wend 最终的程序界面如图二: End Sub (3)、全部向右按钮的点击事件(CmdAllRight) Private Sub CmdAllRight_Click() Dim X As Integer 1 For X = 0 to LstLeft.ListCount - LstRight.AddItem LstLeft.List(X) Next X LstLeft.Clear End Sub (4)、以此类推,输入向左按钮(CmdLeft)与全部向 左按钮(CmdAllLeft)的点击事件,最后按 F5 键运行 程序。 vb神童教程第二章第十一节——滚动条 图二 滚动条常常用来附在某个窗口上帮助观察数据或确定跟上一节的内容相比,带复选框的选择是通过勾选复选位置,也可以用来作为数据输入的工具。在日常操作中,项前面的复选框来确定一个表项是否被选中的,它可以我们常常遇到这样的情况:在某些程序中,如 一次选中多个表项并一次移动多个表项。 Photoshop ,一些具体的数值我们并不清楚,如调色板上一节的程序,一次只能移动一个表项。 上的自定义色彩,这时,可以通过滚动条,用尝试的办2、前后两种程序的区别: 法找到自己需要的具体数值。 在 Visual Basic 中,滚上一节的程序中,对单个表项进行移动,首先加入了是动条分为横向(HscrollBar)与竖向(VscrollBar)两种,否选中的判断,然后再进行移动;全部移动,首先对目命名规则为:HsbX 或 VsbX ,如 HsbShow、标框清零,再进行移动。它们虽然比较好理解,但程序VsbShow ,等等。它们在工具箱上的图标如图一: 的有效性却不佳。 本节的程序,对单个与全部表项进行移动,都采用循环 法,可以一次移动多个表项。 3、程序代码: (1)、窗体的载入事件(Form_Load)跟上一节一样: Private Sub Form_Load() LstLeft.AddItem "刘德华" LstLeft.AddItem "张学友" 图一 LstLeft.AddItem "郭富城" 选中滚动条按钮,把鼠标指针放到界面设计区,然 LstLeft.AddItem "黎 明" 后拖动,画出符合自己要求的滚动条,或者直接双击该 LstLeft.AddItem "谭咏麟" 按钮,自动在界面设计区生成默认大小的滚动条,如图 LstLeft.AddItem "梅艳芳" 二所示: LstLeft.AddItem "张曼玉" 图二 图四 一、滚动条控件的属性: 4、LargeChange(大改变)属性: 1、Max(最大值)与 Min(最小值)属性: 单击滚动条中滚动框前面或后面的部位时,引发 Value 滚动块处于最右边(横向滚动条)或最下边(竖向滚动值按 LargeChange 设定的数值进行改变,如图五: 条)时返回的值就是最大值;滚动块处于最左边或最上 边,返回的值最小,如图三所示: 图五 二、滚动条控件的事件: 图三 与滚动条控件相关的事件主要是 Scroll 与 Change ,Max 与 Min 属性是创建滚动条控件必须指定的属性,当在滚动条内拖动滚动框时会触发 Scroll 事件(但要默认状态下, Max 值为 32767 ,Min 值为 0 。本属注意,单击滚动箭头或滚动条时不发生 Scroll 事件),性既可以在界面设计过程中予以指定,也可以在程序运滚动框发生位置改变后则会触发 Change 事件。Scroll 行中予以改变,如: 事件用来跟踪滚动条中的动态变化,Change 事件则用HsbShow.Min = 3 来得到滚动条最后的值。 HsbShow.Max = 30 三、示例: 2、Value(数值)属性: 有如图六这样一个应用程序,当滚动条(HsbShow)的Value 属性返回或设置滚动滑块在当前滚动条中的位滚动块发生位移时,下面的显示标签(LblShow)自动置,如图三所示。 显示滚动条当前的值;在拖动滚动框的过程中,显示标Value 值可以在设计时指定,也可以在程序运行中改变,签(LblShow)则会显示“拖动中„„”字样。 如: HsbShow.Value = 24 3、SmallChange(小改变)属性: 当用户单击滚动条左右边上的箭头时,滚动条控件 Value 值的改变量就是 SmallChange,如图四: 是说,只要 R 、G 、B 三种色彩都在各自的 255 范 围内,这种色彩就是有效的。 在 VB 中,也用 RGB 来作为色彩的描述,如文本框 的背景色为白色,则表示为:Text1.Backcolor = RGB(255,255,255)。 二、VB 中对象的初值储存问题: 在VB中,常常会对某个对象进行位置移动,或者动态 改变对象的尺寸,一般情况下,都会在程序调入后先对 原始数据进行一些存储,以便发生位移或改变大小后能 恢复原样,而这一功能,是通过初值储存来完成的。 方法是,将原始数据,如坐标值、原始长宽高,等等, 赋值给某个变量,最后通过变量的调用就能完成默认状 图六 态的恢复。 1、创建界面。 三、程序设计: 其中,HsbShow 的 Min 为 0 ,Max 为 100 ,1、创建如图一的程序界面。 SmallChange 为 5 ,LargeChange 为 10 。 文本框的属性: 2、双击滚动条(HsbShow),进入代码编写窗口: Name:TxtContent Text:None Private Sub HsbShow_Change() 三个表示色彩的标签: LblShow.Caption = "滚动条当前值为:" & 红色标签,Name:LblRed Caption:红色 HsbShow.Value 绿色标签,Name:LblGreen Caption:绿色 End Sub 蓝色标签,Name:LblBlue Caption:蓝色 3、滚动条的拖动事件: 三个表示色彩的横向滚动条: Private Sub HsbShow_Scroll() Min:0 Max:255 SmallChange:1 LblShow.Caption = "拖动中„„" LargeChange:5 End Sub 显示“大小”字样的标签: Name:LblSize Caption:大小 vb神童教程第二章第十二节——综合示例五 有如图一这样一个应用程序,分别拖动红、绿、蓝三个对文本框大小进行控制的竖向滚动条: 滚动框来决定文本框的背景色,另外还有一个竖向滚动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、在“通用”选项中定义全局全量,用来储存文本框原色组合而成,这也正是图像处理软件中 RGB 模式的的原始尺寸: 原理所在,如黑色是由皆为 0 的红绿蓝三种颜色组成,Dim Iwidth As Integer 白色为皆为 255 的三原色合成,等等。 Dim Iheight As Integer 在 RGB 模式中,每种色彩最多有 255 种变化,也就5、用来改变文本框尺寸的竖向滚动条: Change 事件: 选中时钟控制器,将鼠标移到界面设计区,在窗体中拖Private Sub VsbSize_Change() 出一个矩形就可以创建一个 Timer 控件了。跟其他控TxtContent.Width = Iwidth * (VsbSize.Value / 100) 件不同的是,无论你绘制的矩形有多大,Timer 控件的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 另外,Timer 控件只有在程序设计过程中看得见,在程6、调试: 序运行时是看不见的。 按 F5 键进行调试,发现文本框的尺寸无法调整。这是一、Timer 控件的属性: 因为,没有在初始状态 Timer 控件可以使用 Name 属性与 Enabled 属性,但下将原文本框的宽度、高度赋值给变量。 最重要的是 Interval 即时间间隔属性。 在 Form 的 Load 事件中输入以下代码: Interval 属性决定了时钟事件之间的间隔,以毫秒为单Private Sub Form_Load() 位,取值范围为 0 , 65535 ,因此其最大时间间隔不Iwidth = TxtContent.Width 能超过 65 秒,即一分钟多一点的时间。如果把 Interval Iheight = TxtContent.Height 属性设置为 1000 ,则表示每秒钟触发一个 Timer 事LblShow.Caption = "100%" 件。 其语法格式: End Sub Timer.Interval = X ,其中,X 代表具体的时间间隔。 7、最后结果如图二: 二、Timer 控件的 Timer (定时)事件: 当一个 Timer 控件经过预定的时间间隔,将激发计时 器的 Timer 事件。使用 Timer 事件可以完成许多实用 功能,如显示系统时钟、制作动画,等等。 三、示例: 有如图三这样一个应用程序,标签能够自动显示当前时 间。 图二 vb神童教程第二章第十三节——Timer 控件 在 Windows 应用程序中常常要用到时间控制的功能, 如在程序界面上显示当前时间,或者每隔多长时间触发 一个事件,等等。而 Visual Basic 中的 Timer(时间) 控制器就是专门解决这方面问题的控件。 Timer 控制 器在工具箱面板上的图标如图一: 图三 1、创建程序界面: 界面如图四,为了便于大家观看,我们将 LblShow 的 边界类型设为 1 。 另外,别忘了把 Timer1 的 Interval 属性设置为 1000 。 图一 在窗口中创建的磁盘列表框可以自动显示电脑上或网 络上的所有磁盘驱动器,另外,还可以通过语法设置运 行时显示的驱动器名称,这就要用到 Drive 属性。 磁 盘列表框名称.Drive = Drive(如 C: ,或者 D:,等等)。 比如,要在窗体启动时把当前磁盘改为 F 盘,那么: Private Sub Form_Load() Drive1.Drive = "F:" End Sub 图四 2、在 Timer1 的 Timer 事件中输入以下代码: Private Sub Timer1_Timer() LblShow.FontSize = 30 LblShow.FontName = "宋体" LblShow.Caption = "当前时间为:" & Time End Sub 注意,Time 是 Visual Basic 中的关键詞,表示显示系 统时间。 图三 二、DirListBox(文件夹列表框)控件: vb神童教程第二章第十四节——文件操作控件 在一个应用程序中,对文件的处理是一个比较常用的操在工具箱面板上,DirListBox 控件的图标如图四: 作,如打开文件、保存文件,等等。Visual Basic 提供 了三个控件对磁盘文件夹与文件进行显示与操作,它们 分别是:DriveListBox(磁盘列表框)控件、DirListBox (文件夹列表框)控件,以及 FileListBox(文件列表框) 控件。如图一: 图四 文件夹列表框控件可以显示与设置文件夹的路径,当用 户在窗口中创建 DirListBox 控件时,双击其中的文件 夹,不需进行编程就能自动显示下一级的文件夹,如图 五: 图一 一、DriveListBox(磁盘列表框)控件: 在工具箱面板上,DriveListBox 控件的图标如图二: 图五 本控件的主要属性是 Path 属性,用来返回或设置当前 图二 文件夹的路径,只能在程序运行中使用,其语法是: 文 件夹列表框名称.Path = 具体的路径 Dir1.Path = Drive1.Drive 比如,我们要在窗体启动时把默认显示的文件夹改为 End Sub D:\Mytool\ ,程序可以这样写: 2、对文件夹列表框控件进行的操作,直接影响文件列Private Sub Form_Load() 表框所显示的内容: Dir1.Path = "D:\Mytool\" Private Sub Dir1_Change() End Sub File1.Path = Dir1.Path FileListBox(文件列表框)控件: End Sub 三、 跟前面两个控件一样,本控件能够自动显示符合条件的最后结果如图八: 文件清单。如图六: 图六 文件列表框控件主要有两个属性,即 Path 属性与 FileName 属性,前者代表文件的路径,从显示路径的 功能上来说,比后者更简便一些 设置所选文件的路径与文件名,其语法是: 文件列表 框名称.FileName = 路径 图八 比如,我们要在窗体启动时将 E:\稿件 目录下的所有 ZIP 文件列出来,程序可以这样写: vb神童教程第二章第十五节——窗体 窗体犹如一块画布,在设计时是程序的设计区域,而在Private Sub Form_Load() File1.FileName = "E:\稿件\*.zip" 运行程序时,每个窗体对应于一个窗口。 End Sub 一、窗体的结构: 结果如图七: 窗体结构与普通 Windows 下的窗口非常相似,如图一: 图一 系统菜单:Form1.ControlBox,点击它可以弹出菜单命 令。 标题栏:Form1.Caption,显示的窗口标题,如本例中的 “Form1”。 图七 最小化按钮:Form1.MinButton 。 四、三个控件的连接: 最大化按钮:Form1.MaxButton 。 上面我们就三个控件进行了分别的学习,在程序中,它二、窗体的主要属性: 们却是互不关连的,并不是只要在窗体中创建了它们,1、名称:命名规则为 FrmX ,如 FrmShow 、FrmFirst ,然后对某个控件(如磁盘列表框)进行操作,其他控件等等,主要用于程序调用。 就会自动显示相应的磁盘下的文件,这需要用程序进行2、AutoRedraw(自动重画): 本属性控制图像的重建,实现。 常用于多窗体程序设计中,语法如下: 1、将磁盘列表框的操作赋值给文件夹列表框的 Path 属窗体名称.AutoRedraw = True/False 性,在磁盘列表框的 Change 事件中输入如下代码: 当 AutoRedraw 设置为 True 时,那么本窗体被另外的Private Sub Drive1_Change() 窗体覆盖后,又回到此窗体时,将自动重新刷新或重画 窗体上的所有图形;如果是 False ,则必须通过事件过 Form1.Width = 300 程来设置这一操作。 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 为编程人员提供了强大的绘图功能支持, 在本章,我们将学会基本的绘图方法。 四、图像框与图形框控件的区别: 在 VB 中,主要通过两种办法进行图像绘制:一1、图形框是“容器”控件,可以作为父控件,而图像种是利用 ActiveX 控件,如用图形框显示图片;另外框不能作为父控件,其他控件不能作为图像框的子控一种是通过使用 VB 语言本身的函数和方法,通过在件。 屏幕上绘制点、线和图形来制作。 图形框作为一个“容器”,可以把其他控件放在其内作一、图形框控件的主要属性: 为它的“子控件”,当图形发生位移,其内的子控件也图形框控件(PictureBox)可以用来显示位图、JPGE、会跟着一起移动。 GIF、图标等格式的图片,在工具箱面板中,图形框控 件的图标如图一: 图一 图三 1、Name 属性: 2、图形框可以通过 Print 方法显示与接收文本,而图命名规则为: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、创建如图一的界面: 图二 显示标签: Name:LblShow Caption:现在显示的是第一张图 LblShow.Caption = "现在显示的是第二张图" 图形框控件: CmdShow.Caption = "图片一" Name:PicShow AutoSize:None X = 2 自动适应复选框: Else Name:ChkAutoSize PicShow.Picture = LoadPicture("E:\稿件图片切换按钮: \Ccidnet\vb\image\vb3-2-1-copy.gif") Name:CmdShow Caption:图片二 LblShow.Caption = "现在显示的是第一张图" 2、先在通用区声明如下变量: CmdShow.Caption = "图片二" Dim X As Integer X = 1 Dim IWidth As Integer End If Dim IHeight As Integer End Sub 其中,X 准备用来做为图片切换的条件,当 X 为 1 ,在上面的程序中,先对 X 进行判断,如果 X 为 1 ,图片切换按钮可以切换到图片二;当 X 为 2 ,图片切那么图形框显示图片二,显示标签改变成“现在显示的换按钮可以切换到图片一。 是第二张图”字样,作为图形切换的按钮, IWidth 与 IHeight 准备用来储存图形框的初始宽度与Caption 变成“图片一”,然后再让 X 为 2 好进入另高度,以便在图形框发生大小变化后回复到原样。 外一种情况;当 X 为 2 ,那么图形框显示图片一,显3、程序打开时自动载入图片一: 示标签与切换按钮发生相应变化。 这样,图片切换按钮就应该能够切换到图片二,所以将 二、联想: 1 赋给 X : 记得第一次设计这个程序时,并没有引入 X 这个辅助Private Sub Form_Load() 变量,而是通过鼠标点击的动作来进行判断的,即,当PicShow.Picture = LoadPicture("E:\稿件原始图形框中显示的是图片一,那么鼠标点击一次,即\Ccidnet\vb\image\vb3-2-1-copy.gif") 奇数次,图形框中会切换到图片二;当鼠标点击第二次,X = 1 即偶数次,图形框可以切换到图片一;以此类推。所以End Sub 可以通过次数取余,如果余数为 0 ,那么图形框可以4、自动适应功能的实现: 切换到图片一;余数为 1 ,图形框可以切换到图片二。 Private Sub ChkStretch_Click() 具体程序大家可以自行思考,此处不再赘述。 If ChkStretch.Value = 1 Then vb神童教程第三章第三节——直线与形状控件 IWidth = PicShow.Width 利用直线与形状控件,可以使窗体上显示的内容更为丰IHeight = PicShow.Height 富,如在窗体上增加简单的线条和实心图形,等等。 PicShow.AutoSize = True 利用直线控件,可以建立简单的直线,通过修改其属性,Else 还可以改变直线的粗细、色彩,以及线型。 PicShow.AutoSize = False 通过设置形状的属性,用户可以画出圆、椭圆,以及圆PicShow.Width = IWidth 角矩形,同时还能设置形状的色彩与填充图案。 PicShow.Height = IHeight 主要属性: End If 除了其他通用属性外,直线与形状控件还具有一些比较End Sub 独特的属性。 上面程序的意思是,如果复选框被选中,那么先将原始1、BorderStyle(边框类型),实用于直线与形状。 图形框的宽度与高度赋给 IWidth、IHeight ,然后再通TransParent:透明,边框不可见。 过激活 PicShow 的 AutoSize 功能达到图形框的自动Solid:实心边框,最常见。 适应;如果复选框没被选中,那么禁止 PicShow 的 Dash:虚线边框。 AutoSize 功能,然后将图形框原来的高度(现在的 Dot:点线边框。 IHeight)和宽度(现在的 IWidth)赋值给图形框以恢Dash-Dot:点划线边框。 复原样。 Dash-Dot-Dot:双点划线边框。 5、图片切换: Inside Solid:内实线边框。 Private Sub CmdShow_Click() 2、FillStyle(填充类型),实用于形状。 If X = 1 Then Solid:实心填充。 PicShow.Picture = LoadPicture("E:\稿件TransParent:透明填充。 \Ccidnet\vb\image\vb3-2-2-copy.gif") Horizontal Line:以水平线进行填充。 Vertical Line:以垂直线进行填充。 3、绘制矩形: Upward Diagonal:向上对角线填充。 用 Line 方法还可以绘制矩形,语法如下: Downward Diagonal:向下对角线填充。 对象名.Line (X1,Y1) - (X2,Y2), [Color], B ,[F] Cross:交叉线填充。 其中,(X1,Y1) 是矩形的左上角座标,(X2,Y2)是矩形右Diagonal Cross:对角交叉线填充。 下角座标,Color 为矩形边框的颜色,使用参数 B 而3、Shape(形状),实用于形状。 不用 F ,那么矩形用当前的填充色(FillColor)与填充Rectangle:矩形。 方式(FillStyle)对矩形进行填充;如果使用了参数 F ,Square:正方形。 那么矩形以边框的颜色进行填充。如图二: Oval:椭圆形。 Circle:圆形。 Rounded Rectangle:圆角矩形。 Rounded Square:圆角正方形。 vb神童教程第三章第四节——常用的绘图方法 除了前面谈到的用控件显示与绘制图形的方法外,VB 还提供了一组庞大的方法用来绘制点、线、面,以及设 置前景、背景色等各种方法。 一、设置当前绘图点: 在 VB 中,可以通过设置窗体或图形框的 CurrentX 与 CurrentY 属性来设置当前绘图点。CurrentX 与 图二 CurrentY 决定了绘制或显示的起始坐标,在设计时,这特别注意,用 Line 画矩形框,如果不用其他参数,那两个属性不可用。 么 B 与坐标(X2,Y2)之间应该有两个逗点,一个是紧跟二、绘制点、线、面的方法: 坐标2,一个表示 Color 省略了,如:Picture1.Line 1、点的绘制法: (500,500) - (1000,1000),,B 在指定对象(如窗体、图形框)上的指定位置处绘制点,4、绘制圆、椭圆、弧: 还可以为点指定颜色,语法如下: 用 Circle 方法可以绘制圆、椭圆与弧,语法如下: 对象名.Pset (X,Y),[Color] 对象名.Circle (X,Y), Radius, [Color,start,end,aspect] X ,Y 分别为点的水平与垂直坐标,Color 为点的颜色,其中,(X,Y)是圆、椭圆或弧的圆心坐标,Radius 是半是可选项。 2、直线的绘制法: 径,这两个参数是必须项;Color 是圆的轮廓色,Start 与 在对象上绘制直线,语法如下: End 是弧的起点与终点位置。其范围是 -2 —— 2Pi ;对象名.Line (X1,y1) - (X2,Y2), [Color] Aspect 是圆的纵横尺寸比,默认值是 1 即圆,如图三: (X1,Y1) 是直线的起点,(X2,Y2)是直线的终点,Color 为可选项。 如图一: 图三 三、颜色、前景与背景色的设置: 1、颜色函数 RGB() 图一 在前面关于卷动条控件(综合示例五)的讲解中,我们2、图形框的代码是: 讲述了色彩的设置问题,而这正是 RGB 颜色函数的原Private Sub Picture1_Click() 理所在。色彩设置的方法如下: RGB(Red,Green,Blue) Picture1.Line (350, 1020)-(2050, 1020) 不要忘了,Red、Green、Blue 每种色彩各有 0——255 End Sub 种成份,三种色彩不同参数的搭配,就产生了丰富多采 的现实世界。 2、前景色的设置: 通过对 ForeColor(前景色属性)的设置,可以返回或 设置对象的前景色。 3、背景色的设置: 对 BackColor 属性进行设置,就可以返回或设置对象 的背景色。 、图形的清除: 4 用 Cls 方法可以清除窗体或图形框在程序运行中绘制 的图形,语法如下: 对象名.Cls vb神童教程第四章第一节——菜单界面设计 任何一个应用程序,都需要通过各种命令来达成某项功图三 能,而这些命令,大多数是通过程序的菜单来实现的,当然,程序光是有菜单还不行,它只是为用户提供了便如我们常常用到的记事本的菜单: 捷的操作接口,程序功能的最终实行,还必须通过给这 些菜单输入复杂的程序才能得以实现。 下面,我们以 Windows 自带的笔记本为例,介绍如何用 VB 制作菜 单。 一、菜单制作: 1、双击如图二的菜单编辑器图标,然后弹出如图三的 编辑窗口。 2、标题:显示在菜单中的文本,这里,我们输入“文 件(&F)”字样。 (&F) 是什么东西,这是为了方便用户使用键盘操作菜 单,当程序运行时,(&) 字样不会出现,而是在字母 F 下加上一条横线,这表示,只要用户在按住 Alt 键的同 图一 时再按下 F 键,就相当于用鼠标点击“文件”这个菜VB 提供了一个菜单编辑器,专门用来制作各式各样的单命令了。也就是说,文件菜单的快捷键是 Alt+F 。 菜单,它在标准工具栏中的图标如图二: 名称:本菜单在程序中的名称,主要用作程序调用,因 此记得用英文名,另外,名字最好一目了然,这里,我 们将“文件”菜单命名为 MenuFile 。 “文件”菜单制作完毕,如图四: 图二 双击该图标,弹出如图三的窗口,通过这个窗口,我们 就可以制作菜单了。 图四 3、点击菜单编辑器上的“下一个”按钮,制作下一个 菜单,这时,我们看到,编辑区域自动提到了下一行, 如图五: 4、制作菜单分隔线: “另存为”菜单下面是条分隔线,那么分隔线如何表示 呢,很简单,只需在“标题”框中输入“-” 就行了, 图五 命名为 MenuSperate1 ,然后点按“下一个”按钮制作点击向右按钮,本行前面出现了四个小点,表示本菜单下面的菜单。如图七: 降了一级,是二级菜单(依此类推,如果要制作三级菜 单,只需要再点一下向右按钮进行降级就行了)。然后 用第二步的方法,制作“新建”(MenuNew)、“打开” (MenuOpen)、“保存”(MenuSave)、“另存为” (MenuSaveOther)菜单,结果如图六: 图七 5、同理可做“页面设置”(MenuPage)、“打印” (MenuPrint)、“分隔线二”(MenuSeprate2)、“退出菜单” (MenuQuit),如图八: 图六 上面讲到了用 & 符号制作快捷键的方法,这里我们再 使用 VB 菜单编辑器中的“快捷键”定制方法制作快 捷键。 找到“新建”菜单,先在“新建(&N)”字样后面添加六 个空格,以便后面显示的快捷键跟菜单名之间有点空 隙,然后在快捷键下拉列表中选择 Ctrl+N ,这表示在 按住 Ctrl 键的同时按 N 键就能使用“新建”命令了, 如下图: 图八 6、制作“编辑”菜单: 由于“编辑菜单”是一级菜单,所以在完成“退出”菜 单,并点按“下一个”按钮后,别忘了点按向左按钮, 将当前菜单进行升级,这时可以看到,本行前面的四个 小点消失了,如图九: 大家可以用鼠标右键点击工具箱面板,在弹出的面板中 选择“部件”,然后在弹出的窗口中找到“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 控件没有罗列出来,象这种菜单,我们称为“复选菜单”。 复选菜单的制作非常简单,只需找到要作为复选菜单的图二中每行前面点的多少可以判断出来。 另外,不要那个菜单,然后勾选“复选”按钮就行了,如图十四: 忘记勾选“红”、“绿”、“蓝”三种色彩的菜单前的“复 选”选项。 二、输入程序代码: 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 MenuGreen.Checked = False MenuBlue.Checked = True Form1.BackColor = vbBlue End Sub 蓝色菜单处于选中状态,其他菜单非选中,同时窗体背 景变为蓝色。 、最后按 F5 键,如何,程序正常运行了吧, 7 三、联想: 本节我们讲到复选菜单是如何对选中进行判断的,那就 是看 Checked 值是否为 True 。 前面我们学过单选按钮(OptionBUtton)、复选按钮 (CheckBox),它们也有是否被选中的判断,那么,它 们有什么不同呢, 图二 注意,单选按钮是否选中的判断: 除了前面谈到的用控件显示与绘制图形的方法外,VB 单选按钮名.Value = True/False 。由于单选按钮只能二还提供了一组庞大的方法用来绘制点、线、面,以及设选一或多选一,所以往往不需判断,只需响应 Click 事置前景、背景色等各种方法。 件就行了。 一、设置当前绘图点: 复选按钮的判断: 在 VB 中,可以通过设置窗体或图形框的 CurrentX 与 复选按钮名.Value = 0/1/2 。由于复选按钮可以一次多CurrentY 属性来设置当前绘图点。CurrentX 与 选,所以对它的判断最为复杂,常常需要用到诸如 CurrentY 决定了绘制或显示的起始坐标,在设计时,这If„„Then 等条件语句进行判断。但它跟复选菜单不同两个属性不可用。 的是,复选菜单常常只能多中选一,比如上面例子中,二、绘制点、线、面的方法: 选择了“红色菜单”就不能选择“蓝色菜单”,等等。 记1、点的绘制法: 不清楚的朋友可以回头复习一下,此处不再赘述。 在指定对象(如窗体、图形框)上的指定位置处绘制点, 还可以为点指定颜色,语法如下: vb神童教程第四章第三节——动态增减菜单 我们在上一节示例的基础上,来制作如图一的小程序,对象名.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)必须在前面的“索引”一个信息菜单也类似,如果当前是 MenuHint(X),那么框中填入数字 0,如图二: 清除一个后应该为 MenuHint(X-1),依此类推。 指定索引值为 HintNumber ,那么增加时,应该是 HintNumber = HintNumber + 1 ;清除时,应该是 HintNumber = HintNumber -1 。 2、变量的作用域: 一个变量的作用域倒底有多大,这得由变量的类型来 决定。当一个变量只在某一个过程或事件(如某个按钮End Sub 的单击事件)中起作用,那么它就是局部变量,可以在上面的代码,先对 HintNumber 值进行判断,当 事件中直接定义;当一个变量可以在整个窗体内供使HintNumber 为 0 即程序的初始状态时,直接退出当前用,那么它可能是窗体层变量或全局变量,凡是在这个过程(Exit Sub 是退出当前过程的命令,切记);如果 窗体上的事件都可以对这个变量进行引用,这种变量只HintNumber 不为 0 ,那么卸载索引值最高的信息菜能在“通用”过程中进行“声明”。 单,即 MenuHint(HintNumber) ,然后讲算 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 、在窗体的载入事件中让 HintNumber 为初始值 0 ,End Sub 3 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 图一 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、选择“工程/工程属性”菜单命令,在弹出的窗口中处在主窗体内部,主窗体的位置移动会导致子窗体的位找到“启动对象”,然后从中选择文件打开时的主窗口置发生相应变化。如图一: 是哪个,如图四: 图四 4、控制程序的打开状态: 如果要让程序打开时自动载入 Form1 窗口,那么在如 图五的工程属性窗口中选择“启动对象”为 Form1 ; 如果不想显示子窗体,那么只需在“启动对象”中选择 图一 MDIForm1 就行了。 一、多文档程序的建立: 多文档程序至少有两个窗体,一个主窗体和一个子窗体 或多个子窗体,主窗体是其他窗体的容器。 、创建一个新工程,然后选择工程/工程属性菜单命令,1 加入如图二的主窗体: 图五 5、子窗体的显示: 假设工程的启动对象为 MDIForm1 ,那么如何显示子 图二 窗体 Form1 呢, 2、在“项目”窗口中双击 Form1 切换到 Form1 ,然可以在主窗体中加入菜单,或者直接用 Load 的方法,后将其 MDIChild 属性设为 True ,如图三: 如下: Private Sub MDIForm_Load() Form1.Show 0 End Sub 这段代码将 Form1 显示出来,并呈非模态模式。 二、主窗体与子窗体的标题: 当主窗体与子窗体都呈显现状态时,把子窗体最大化, 你会发现窗体的标题变成了主窗体标题加上子窗体标 题,如图六: 图三 3、按 F5 键运行程序,结果如图四: 图六 三、主窗体与子窗体的菜单: 在 VB 中,如果子窗体载入,那么主窗体的菜单将被图九 子窗体的菜单替换;只有当主窗体中没有子窗体时才能 显示主窗体的菜单,如图七、图八、图九、图十: 双系统安装方法: XP下安装windows7 安装前说明: 1、先装XP,再装Windows 7,最好不要反过来,不然 XP不会把Windows 7的启动管理器给覆盖掉,会麻烦 些。总之遵循“旧版本到新版本”安装原则。 2、如果分区不够大,请用以下软件调整,但要慎重, 详见: 硬盘分区管理工具Norton PartitionMagic(PQ8.0) V8.05 图七 Build 1371 简装汉化版 下载 Windows XP 推荐安装使用:Windows XP pro with sp3 VOL 微软原版 (简体中文) + 正版密钥 Windows 7 Windows 7 英文旗舰版 + 简体中文语言包(MSDN原 版) XP下硬盘安装Windows 7的详细说明: 图八 1、XP装在C盘,Windows 7装在非C盘,例:E盘,该 盘必须是NTFS格式的空白磁盘(如果某些数据没有彻 底清除,装前请先快速格式化一次,以免安装过程出 错),大小16G以上,建议20G。 2、把下载好的镜像放在非Windows 7安装盘,直接用 WinRAR解压,得到一个文件夹,双击运行里面的setup, 点"下一步",接着按提示做就行了,安装过程会重起两 三次,请别乱动,整个过程20分钟左右,当然不同配置时间长短会有差别。(提别提醒: 安装过程切不要选升级,“要选自定义”,然后选择你事先准备好安装Windows 7所在的那个磁盘,例:E盘。另外激活码先不填,直接点"下一步",安装完成后再用"激活工具"激活即可。) 3、安装完成后,重启你会看到两个选择菜单,第一个是Earlier Version of Windows 即早期的操作系统Windows XP;第二个是Windows 7,且开机默认进系统的是Windows 7,等待时间为30秒。至此,一个完美的双系统就这样产生了。 注解: A、考虑到Windows 7版本没有最后定型,对于系统爱好者就会经常重装更换版本,此时请先卸载旧版本: XP系统下右键Windows 7所在磁盘“快速格式化/NTFS格式”即可,然后再按上面步骤安装。如果要彻底卸载Windows 7,快速格式化后,还需要去掉开机启动项Windows 7,那就需要借助"辅助软件VistaBootPRO"了。 B、修改启动顺序、启动等待时间问题:先装XP后装Windows 7的朋友,系统启动管理器自动创建了,里面有两个系统选项。开机默认进系统的是Windows 7,等待时间为30秒,如果想选择XP系统,等待时间内按向下键切换为XP,再回车键Enter即可。但是有些网友喜欢XP为默认系统,这个时候就需要手动修改或用辅助软件VistaBootPRO修改。 手动修改方法:Windows 7系统下,在“计算机”右键“属性”,点“高级系统设置”,再点“启动和故障恢复”下面的“设置”,找到“默认操作系统”点向下键,选“Earlier Version of Windows”,再在“显示操作系统列表的时间”后面改成你想要的时间,例:5秒,最后点确定,重起电脑即可得到你想要的结果。 建议你看看这个方法
本文档为【【计算机】VB神童教程跟我来学VB(打印版)(共42页)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_841159
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:113
分类:
上传时间:2017-11-10
浏览量:11