《VBNET程序设计教程》由会员分享,可在线阅读,更多相关《VBNET程序设计教程(296页珍藏版)》请在金锄头文库上搜索。
1、VBVB。NET-NET-程序设计教程程序设计教程VB.NET程序设计教程程序设计教程本书目录本书目录教师:黄钰办公地点:逸夫楼A409Email:Mobile:137202372012VB.NET程序设计教程程序设计教程本书目录本书目录学习目的学习目的初步掌握windows应用编程的基本思想和方法。根据专业背景知识自行开发相关的应用程序。3VB.NET程序设计教程程序设计教程本书目录本书目录对于生科专业:生物信息学(Bioinformatics)综合计算机科学、信息技术和数学的理论和方法来研究生物信息的交叉学科。包括生物学数据的研究、存档、显示、处理和模拟,基因遗传和物理图谱的处理,核苷酸和
2、氨基酸序列分析,新基因的发现和蛋白质结构的预测等。4VB.NET程序设计教程程序设计教程本书目录本书目录对于地信专业:1.空间数据获取,管理与处理VB界面2.本专业课程大部分与计算机相关VB程序设计是基础5VB.NET程序设计教程程序设计教程本书目录本书目录对于园艺专业:遗传育种学:育种目标的制定、种质资源、植物的繁殖方式、引种、选择育种。计算机在遗传育种研究中有着广泛的应用。6VB.NET程序设计教程程序设计教程本书目录本书目录对于食工专业:l食品研究中的计算机数据处理l计算机在工程设计中的应用流体输送系统的设计,蒸发系统的设计计算等7VB.NET程序设计教程程序设计教程本书目录本书目录第一
3、章第一章 VB.NETVB.NET概述概述第二章第二章 面向对象的可视化编程基础面向对象的可视化编程基础第三章第三章 VB.NETVB.NET语言基础语言基础第四章第四章 基本的控制结构基本的控制结构第五章第五章 数数 组组第六章第六章 过过 程程第七章第七章 常用控件和界面设计常用控件和界面设计第十章第十章 VB.NETVB.NET数据库程序设计数据库程序设计目目 录录8VB.NET程序设计教程程序设计教程本书目录本书目录第一章第一章 VB.NET基础基础1.1 VB.NET概述概述1.2 VB.NET集成开发环境集成开发环境1.3 实现问题的求解过程实现问题的求解过程 本章目录本章目录9V
4、B.NET程序设计教程程序设计教程本书目录本书目录1.1 VB.NET概述概述1.1.初期的程序设计初期的程序设计 高运行效率、少占用内存为目标高运行效率、少占用内存为目标2.2.结构化程序设计结构化程序设计程序的可读性、可维护性为目标程序的可读性、可维护性为目标3.3.面向对象的程序设计面向对象的程序设计 降低程序的复杂性、提高软件的开发效率和降低程序的复杂性、提高软件的开发效率和改善工作界面为目标改善工作界面为目标2002年正式发布年正式发布VisualBasic.NET。本章目录本章目录10VB.NET程序设计教程程序设计教程本书目录本书目录1.1.2 Microsoft.NET概述概述
5、 什么是什么是.NET?.NET代代表表了了一一个个集集合合、一一个个环环境境、一一个个编编程程的的基基本本结结构构,作作为为一一个个平平台台来来支支持持下下一一代代的的Internet。.NET也也是是一一个个用用户户环环境境,是是一一组组基基本本的的用用户户服服务,可以作用于客户端、服务器或任何地方务,可以作用于客户端、服务器或任何地方。对对初初学学VB的的人人来来说说,可可以以这这样样认认为为,.NET就就是是VisualStudio.NET。本章目录本章目录11VB.NET程序设计教程程序设计教程本书目录本书目录1.1.3 VB.NET特点特点1引例引例例例1.1简单的动画演示。简单的
6、动画演示。一一行行文文字字“欢欢迎迎使使用用VB.NET”在在具具有有背背景图案的窗体中上、下移动。景图案的窗体中上、下移动。移移动动方方法法有有两两种种:单单击击手手动动按按钮钮,移移动动5个个像像素素单单位位;单单击击自自动动按按钮钮,按按定定时时器器触触发发频频率率连连续续移移动动;当当内内容容超超出出窗窗体体范范围时,进行反弹。围时,进行反弹。例例1.2蝴蝶飞蝴蝶飞本章目录本章目录12VB.NET程序设计教程程序设计教程本书目录本书目录v提供了易学易用的应用程序集成开发环境提供了易学易用的应用程序集成开发环境v 具有面向对象的可视化设计工具具有面向对象的可视化设计工具v 事件驱动的编程
7、机制事件驱动的编程机制v 支支持持结结构构化化程程序序设设计计,具具有有面面向向对对象象程程序序设设计计语言的所有特征语言的所有特征v 具有丰富的数据类型、功能强大的类库具有丰富的数据类型、功能强大的类库v 强大的数据库功能强大的数据库功能v 网络功能网络功能v 完备的帮助功能完备的帮助功能VB.NET功能特点功能特点本章目录本章目录13VB.NET程序设计教程程序设计教程本书目录本书目录1.2 VB.NET的集成开发环境的集成开发环境 1.2.1进入进入VB.NET启动启动VisualStudio.NET“起始页起始页”选择选择“新建新建项目项目/ /打开项打开项目目”按钮按钮Visual
8、Basic项目项目 Windows应用程序应用程序 本章目录本章目录14VB.NET程序设计教程程序设计教程本书目录本书目录VB.NET集成开发环境集成开发环境 本章目录本章目录15VB.NET程序设计教程程序设计教程本书目录本书目录1.2.2主窗口主窗口 1.三种工作模式三种工作模式设计模式设计模式界面的设计和代码的编制界面的设计和代码的编制运行模式运行模式运行应用程序运行应用程序中断模式中断模式暂时中断程序运行,调试程序暂时中断程序运行,调试程序2.菜单栏菜单栏包括包括11个下拉菜单个下拉菜单3.工具栏工具栏示例示例1.3本章目录本章目录16VB.NET程序设计教程程序设计教程本书目录本书
9、目录1.2.3 窗体设计窗体设计/代码设计窗口代码设计窗口 1.窗体设计器窗口窗体设计器窗口建立建立VB.NET应用程序的界面应用程序的界面(一个应用程序可以一个应用程序可以有多个窗体,通过有多个窗体,通过“项目项目| |添加添加Windows窗体窗体”命令增加新窗体命令增加新窗体)。2.代码设计窗口代码设计窗口专门用来进行代码设计,包括各种事件过程、过专门用来进行代码设计,包括各种事件过程、过程和类等源程序代码的编写和修改。程和类等源程序代码的编写和修改。打开代码设计窗口的方法打开代码设计窗口的方法(多种多种):双击窗体、控件:双击窗体、控件或单击代码窗口上方的选项卡组对应项。或单击代码窗口
10、上方的选项卡组对应项。本章目录本章目录17VB.NET程序设计教程程序设计教程本书目录本书目录1.2.4 属性窗口属性窗口 窗窗体体和和控控件件称称为为对对象象,每每个个对对象象用用一一组组属属性性来来描描述其外部特征,如颜色、大小等。述其外部特征,如颜色、大小等。属性窗口属性窗口用于显示和设置所选定的对象的属性。用于显示和设置所选定的对象的属性。属性窗口由四部分组成:属性窗口由四部分组成:对象和名称空间列表框对象和名称空间列表框属性显示排列方式属性显示排列方式属性列表框属性列表框属性含义说明属性含义说明本章目录本章目录18VB.NET程序设计教程程序设计教程本书目录本书目录1.2.5 解决方
11、案资源管理器窗口解决方案资源管理器窗口 项目项目 一个独立的编程单位一个独立的编程单位(包含窗体文件及其他包含窗体文件及其他一些相关文件一些相关文件),若干项目组成一个若干项目组成一个解决方案解决方案解决方案可以含有以下类型的文件:解决方案可以含有以下类型的文件:q解决方案文件解决方案文件(.sln)可包括用不同语言开发的项目可包括用不同语言开发的项目q项目文件项目文件(.vbproj)由引用的组件和代码模块组成由引用的组件和代码模块组成q代码模块文件代码模块文件(.vb)包括窗体文件、类模块或其他代码文件包括窗体文件、类模块或其他代码文件本章目录本章目录19VB.NET程序设计教程程序设计教
12、程本书目录本书目录本章小节本章小节Visual Studio.NETVisual Studio.NET一个支持下一代一个支持下一代InternetInternet的平台的平台VB.NETVB.NET的三种工作模式的三种工作模式设计模式、运行模式、中断模式设计模式、运行模式、中断模式组成组成本章目录本章目录解决方案解决方案项目项目组件和代码模块组件和代码模块项目项目组件和代码模块组件和代码模块20VB.NET程序设计教程程序设计教程本书目录本书目录第二章第二章 面向对象的可视化编程基础面向对象的可视化编程基础2.1 VB.NET对象的概念对象的概念2.2 建立简单的应用程序建立简单的应用程序2.
13、3 窗体和基本控件窗体和基本控件 2.4 综合应用综合应用 本章目录本章目录21VB.NET程序设计教程程序设计教程本书目录本书目录2.1 Visual Basic对象的概念对象的概念2.1.1对象和类对象和类1.对象对象对象就是日常生活中的某个实在的物体对象就是日常生活中的某个实在的物体例如,一个人、一辆汽车、一台电脑。例如,一个人、一辆汽车、一台电脑。对象都具有各自的特征对象都具有各自的特征(属性属性)、行为、行为(方法方法)。人人有有身身高高、体体重重、听听力力等等特特征征;也也具具有有起起立立、行走、说话、踢足球等行为。行走、说话、踢足球等行为。在在VB.NET中中,将将反反映映对对象
14、象的的属属性性和和行行为为封封装装在一起,是面向对象编程的基本元素。在一起,是面向对象编程的基本元素。本章目录本章目录22VB.NET程序设计教程程序设计教程本书目录本书目录2.类的概念类的概念类类同种对象的集合与抽象,是创建对象实例的同种对象的集合与抽象,是创建对象实例的模板,包含所创建对象的属性描述和行为特征的模板,包含所创建对象的属性描述和行为特征的定义。定义。例例如如,人人类类是是具具体体人人的的抽抽象象。每每个个人人有有不不同同的的身身高、体重等属性值和不同的行为。高、体重等属性值和不同的行为。VB.NET工工具具箱箱中中的的可可视视图图标标是是VB.NET系系统统设设计计好好的的标
15、标准准控控件件类类。通通过过将将控控件件类类实实例例化化,得得到到真真正正的的控控件件对对象象。在在窗窗体体上上画画一一个个控控件件,就就将将类类转换为对象,创建了一个控件对象转换为对象,创建了一个控件对象(简称简称控件控件)。本章目录本章目录23VB.NET程序设计教程程序设计教程本书目录本书目录例例如如:工工具具箱箱内内的的TextBox是是类类(它它确确定定了了TextBox的属性、方法和事件的属性、方法和事件)窗体上显示的是两个窗体上显示的是两个TextBox对象对象TextBox对象对象TextBox类类本章目录本章目录24VB.NET程序设计教程程序设计教程本书目录本书目录属性属性
16、、事件事件和和方法方法构成对象的三要素构成对象的三要素1.属性属性存放对象的数据存放对象的数据(决定对象外观及功能决定对象外观及功能)例如,控件名称、文本、大小等属性。例如,控件名称、文本、大小等属性。对象属性的设置方法:对象属性的设置方法:v设计阶段设计阶段利用属性窗口直接设置属性值利用属性窗口直接设置属性值v程序运行时程序运行时通过语句通过语句对象名对象名. .属性名属性名= =属性值属性值例如:例如:Button1.Text=确定确定注注意意:若若属属性性只只能能在在设设计计阶阶段段设设置置,在在程程序序运运行行阶段不可改变,称为只读属性。阶段不可改变,称为只读属性。 2.1.2 对象的
17、属性、事件和方法对象的属性、事件和方法 本章目录本章目录25VB.NET程序设计教程程序设计教程本书目录本书目录2.1.3对象的建立和命名对象的建立和命名(1 1)对象的建立)对象的建立 方法一:方法一: 单击工具箱上的控件,在窗体上按单击工具箱上的控件,在窗体上按住左键拖拉到所需要的大小后释放。住左键拖拉到所需要的大小后释放。 方法二:方法二: 双击工具箱上的控件,则立即在窗双击工具箱上的控件,则立即在窗体出现一个默认大小的对象框。体出现一个默认大小的对象框。(2 2)编辑对象)编辑对象 先选中对象(单击对象),先选中对象(单击对象), 放大、缩小放大、缩小 删除对象删除对象 26VB.NE
18、T程序设计教程程序设计教程本书目录本书目录(3 3)对象的命名)对象的命名 每一个对象都有自己的名字每一个对象都有自己的名字。每个窗体、控件对每个窗体、控件对象在建立时象在建立时VBVB系统给出了一个默认名。用户可通过系统给出了一个默认名。用户可通过属性窗口设置(名称)来给对象命名。属性窗口设置(名称)来给对象命名。 命名的原则:命名的原则: 必须以字母或汉字开头、随后可以是字母、汉字、必须以字母或汉字开头、随后可以是字母、汉字、数字、下划线连接而成。数字、下划线连接而成。27VB.NET程序设计教程程序设计教程本书目录本书目录事件事件发生在对象上的事情发生在对象上的事情同一事件,对不同的对象
19、,会引发不同的反应同一事件,对不同的对象,会引发不同的反应:事件事件本章目录本章目录教师教师_铃声铃声()讲课讲课EndSub学生学生_铃声铃声()听讲听讲接受知识接受知识EndSubVB.NET为对象预先定义了一系列的事件。例为对象预先定义了一系列的事件。例如,单击如,单击Click、获取焦点、获取焦点GotFocus、按下、按下键盘键盘KeyPress等等其他人其他人员员_铃声铃声()可不于响应可不于响应EndSub28VB.NET程序设计教程程序设计教程本书目录本书目录事件过程事件过程应用程序处理事件的步骤应用程序处理事件的步骤它针对某一对象并与该对象的一个事件相联系它针对某一对象并与该
20、对象的一个事件相联系应应用用程程序序设设计计的的主主要要工工作作就就是是为为对对象象编编写写事事件件过过程的代码。事件过程的形式如下:程的代码。事件过程的形式如下:Sub对象名对象名_事件事件(对象引用,事件信息对象引用,事件信息)Handles事件处理程序事件处理程序 事件过程代码事件过程代码EndSub对象引用:指向引发事件的对象对象引用:指向引发事件的对象事件信息:与事件相关的信息事件信息:与事件相关的信息事件过程事件过程本章目录本章目录29VB.NET程序设计教程程序设计教程本书目录本书目录例例2.02.0 在在命命令令按按钮钮的的Click事事件件过过程程,改改变变按按钮钮的字体颜色
21、的字体颜色. . 代码说明代码说明 注注意意:在在代代码码窗窗,自自动动产产生生事事件件过过程程的的模模板板,不要修改模板的内容,只需键入过程的代码。不要修改模板的内容,只需键入过程的代码。一一个个动动作作可可能能同同时时发发生生多多个个事事件件。例例如如单单击击鼠鼠标同时发生了:标同时发生了:Click、MouseDown、MouseUp事件事件编编程程时时,只只要要对对需需要要的的事事件件过过程程编编码码,无无编编码码的事件为空事件,系统就不处理该事件过程。的事件为空事件,系统就不处理该事件过程。本章目录本章目录30VB.NET程序设计教程程序设计教程本书目录本书目录事事件件驱驱动动程程序
22、序设设计计方方式式:程程序序执执行行的的先先后后次次序序与与程序设计者无关,取决于用户的操作程序设计者无关,取决于用户的操作。VB.NETVB.NET程序的执行步骤:程序的执行步骤: 启动应用程序,装载和显示窗体;启动应用程序,装载和显示窗体; 窗体窗体( (或窗体上的控件或窗体上的控件) )等待事件的发生;等待事件的发生; 事件发生时,执行对应的事件过程;事件发生时,执行对应的事件过程; 重复执行步骤重复执行步骤和和。事件驱动程序设计事件驱动程序设计本章目录本章目录31VB.NET程序设计教程程序设计教程本书目录本书目录方法方法面向对象的程序设计语言,为程序设计人员提供面向对象的程序设计语言
23、,为程序设计人员提供了一种特殊的过程和函数,称为了一种特殊的过程和函数,称为方法方法。方方法法是是面面向向对对象象的的,调调用用时时一一定定要要指指明明对对象象。对对象方法的调用格式为:象方法的调用格式为:对象对象.方法方法参数名表参数名表若省略对象,表示当前对象,一般指窗体。若省略对象,表示当前对象,一般指窗体。例如:例如:Textbox1.FocusTextbox1.Focus此语句使此语句使Textbox1控件获得焦点,光标在本文框控件获得焦点,光标在本文框内闪烁。内闪烁。本章目录本章目录32VB.NET程序设计教程程序设计教程本书目录本书目录2.2 建立简单的应用程序建立简单的应用程序
24、 例例2.1 2.1 编写一个人民币与美圆兑换的程序。编写一个人民币与美圆兑换的程序。建立一个应用程序分为以下几步进行:建立一个应用程序分为以下几步进行:(1)建立用户界面的对象建立用户界面的对象(2)对象属性的设置对象属性的设置(3)对象事件过程及编程对象事件过程及编程(4)保存和运行程序保存和运行程序本章目录本章目录代码说明代码说明33VB.NET程序设计教程程序设计教程本书目录本书目录对象事件过程及编程对象事件过程及编程 代码窗口的代码窗口的对象列表框对象列表框可显示窗体所有对象可显示窗体所有对象 过程列表框过程列表框列出所选中对象的所有事件列出所选中对象的所有事件例如,在按钮例如,在按
25、钮ButtonButton2 2的的ClickClick事件加入代码:事件加入代码:Sub Button2_Click(ByVal sender As System.Object, _Sub Button2_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button2.ClickByVal e As System.EventArgs) Handles Button2.ClickTextBox1.Text = Val(TextBox3.Text) * Val(TextBox2.Text)End
26、 SubEnd SubVal( )函数函数 将数字字符转换成数值型将数字字符转换成数值型 本章目录本章目录34VB.NET程序设计教程程序设计教程本书目录本书目录保存程序和文件组成保存程序和文件组成 程序存盘后将建立一个文件夹,包含如下内容:程序存盘后将建立一个文件夹,包含如下内容:(1)xxx.sln项目关联、配置等的信息项目关联、配置等的信息(2)xxx.suo开发环境选项的信息开发环境选项的信息(3)xxx.vbproj项目文件项目文件(4)Form1.vb窗体文件窗体文件(5)AssemblyInfo.vb项目集合信息项目集合信息(系统自动建立系统自动建立)(6)xxx.exe可执行文
27、件可执行文件(在在Bin文件夹文件夹)(7)Bin文文 件件 夹夹 可可 执执 行行 文文 件件 的的 默默 认认 路路 径径 , 可可 用用 Application.StartupPath()获得该路径。获得该路径。(8)Debug文件夹文件夹存放程序调试产生的信息存放程序调试产生的信息本章目录本章目录35VB.NET程序设计教程程序设计教程本书目录本书目录36VB.NET程序设计教程程序设计教程本书目录本书目录2.3 窗体和基本控件窗体和基本控件 2.3.1通用属性通用属性 属性设置两种方式:属性设置两种方式:通过属性窗口设置通过属性窗口设置在代码设计窗口通过代码来设置在代码设计窗口通过代
28、码来设置 用代码设置时,需要用不同方式表示不同的类型用代码设置时,需要用不同方式表示不同的类型本章目录本章目录37VB.NET程序设计教程程序设计教程本书目录本书目录2.3.1 通用属性通用属性(1)Name 所有对象都具有的属性,表示所创建的对象名称。所有对象都具有的属性,表示所创建的对象名称。在程序中通过对象名称来引用对象,不会显示在在程序中通过对象名称来引用对象,不会显示在窗体上。窗体上。(2) Text 用于在窗体上显示对象的文本用于在窗体上显示对象的文本TextBox控件的控件的Text还可以获取输入信息还可以获取输入信息本章目录本章目录38VB.NET程序设计教程程序设计教程本书目
29、录本书目录(3) 控件布局属性控件布局属性控件布局由控件布局由Location、Size来实现,它们各有来实现,它们各有一对整数来表示,整数单位为像素。一对整数来表示,整数单位为像素。Location 控件左上角位置,控件左上角位置, Size 控件大小控件大小例如,命令按钮控件布局例如,命令按钮控件布局Button1.Location = New Point(88, 48)Button1.Location = New Point(88, 48)Button1.Size = New Size(80, 32)Button1.Size = New Size(80, 32)也可用也可用Left、To
30、p定位;用定位;用Width和和Height来来表示控件的宽度和高度。表示控件的宽度和高度。本章目录本章目录等效的语句设置:等效的语句设置:Button1.Left=88Button1.Top=48Button1.Width=80Button1.Height=3239VB.NET程序设计教程程序设计教程本书目录本书目录(4) Font 属性值是属性值是Font类的对象,一般通过类的对象,一般通过Font属性对话框设置属性对话框设置若在程序代码中需要若在程序代码中需要改变文本的外观,则改变文本的外观,则应应通过通过New创建创建Font对象对象来改变字体。来改变字体。例如:例如:Label1.F
31、ont = New System.Drawing.Font(Arial, 10)本章目录本章目录40VB.NET程序设计教程程序设计教程本书目录本书目录(5) ForeColor、BackColor 颜色属性颜色属性qForeColor控件正文前景色控件正文前景色qBackColor背景色背景色例调色板例调色板本章目录本章目录41VB.NET程序设计教程程序设计教程本书目录本书目录(6) Dock 控件放置靠窗体边框的位置,属性控件放置靠窗体边框的位置,属性值值是是DockStyle枚举类型,有六个枚举值枚举类型,有六个枚举值(7) Enabled、Visible 控件的有效、可见性控件的有效
32、、可见性本章目录本章目录(8) TabIndex 按按Tab键时,焦点在各个控件键时,焦点在各个控件移动的顺序移动的顺序EnabledVisibleTrue允许用户操作允许用户操作程序运行时控件可见程序运行时控件可见 False禁止用户操作禁止用户操作运行时控件不可见运行时控件不可见42VB.NET程序设计教程程序设计教程本书目录本书目录2.3.2 窗体窗体 窗窗体体是是一一块块画画布布,是是所所有有控控件件的的容容器器,可可以以根根据据需要利用工具箱上的控件在窗体上画界面。需要利用工具箱上的控件在窗体上画界面。1.主要属性主要属性本章目录本章目录43VB.NET程序设计教程程序设计教程本书目
33、录本书目录窗体窗体-属性属性(1) MaximizeBox、MinimizeBox 设设置置为为True,窗窗体体上上有有最最大大(小小)化化按按钮钮;为为False时时无无最大最大(小小)化按钮化按钮(2) Icon、ControlBox 窗体图标、控制菜单窗体图标、控制菜单ControlBox属属性性为为True,窗窗体体上上有有控控制制菜菜单单框框;为为False时时无无控控制制菜菜单单(系系统统将将MaxButton和和MinButton自动设置为自动设置为False)(3) BackgroundImage 窗体背景图案窗体背景图案(4) FormBorderStyle 窗体的边框类型
34、窗体的边框类型本章目录本章目录44VB.NET程序设计教程程序设计教程本书目录本书目录窗体窗体-事件事件 最常用的事件有最常用的事件有Click、DoubleClick和和LoadLoad事事件件窗窗体体装装入入内内存存时时触触发发(应应用用程程序序启启动动时时自自动动执执行行该该事事件件),常常用用来来在在启启动动时时对对属属性性和和变量初始化。变量初始化。例例2.2 编写三个事件过程,要求如下:编写三个事件过程,要求如下:启启动动窗窗体体,在在标标题题栏栏显显示示“装装入入窗窗体体”,并并将将tongji.bmptongji.bmp作作为为背景图平铺窗体、窗体边框为背景图平铺窗体、窗体边框
35、为Fixed3DFixed3D;单单击击窗窗体体,标标题题栏栏显显示示对对应应的的文文字字、装装入入tongji-2.bmptongji-2.bmp图图片片大大小为小为264256,264256,要求图片正好充满窗体。要求图片正好充满窗体。双双击击窗窗体体,标标题题栏栏显显示示对对应应的的文文字字、窗窗体体无无最最大大化化和和最最小小化化按按钮,清除装入的图片。钮,清除装入的图片。代码说明代码说明本章目录本章目录45VB.NET程序设计教程程序设计教程本书目录本书目录2.3.3 标签标签-属性属性标签用来显示文本信息标签用来显示文本信息(不能输入不能输入)除除Name、Font、Size、Lo
36、cation、Enable等等属性外,其它主要属性:属性外,其它主要属性:(1)Text、TextAlign:设设置置显显示示的的文文本本、文文本本的对齐方式的对齐方式TextAlign属性是枚举属性是枚举类型(从类型(从1开始),提开始),提供标签控件上文本的供标签控件上文本的9种对齐方式种对齐方式本章目录本章目录46VB.NET程序设计教程程序设计教程本书目录本书目录(2)BackColor 背背景景色色(默默认认与与窗窗体体背背景景相相同同)。若若要要以以透透明明方方式式显显示示,需需要要设设置置Color枚枚举举类类型型的的Transparent。(3)BorderStyle标签控件边
37、框样式标签控件边框样式None控件周围没有边框控件周围没有边框(默认值默认值)FixedSingle控件带有单边框控件带有单边框Fixed3D控件带有立体边框控件带有立体边框(4)AutoSize控件是否能自动调整大小控件是否能自动调整大小当当值值为为False,保保持持控控件件原原设设计计时时的的大大小小,正正文文若太长则显示其中的一部分。若太长则显示其中的一部分。本章目录本章目录47VB.NET程序设计教程程序设计教程本书目录本书目录(5)Image、ImageAlign设置控件的背景图案和图案对齐方式设置控件的背景图案和图案对齐方式ImageAlign属性与属性与TextAlign类似类
38、似通过代码设置图案:通过代码设置图案:标签名标签名.Image = Image.FromFile(图片名图片名)例例2.3 2.3 在在4 4个个标标签签中中存存放放4 4个个方方向向的的“手手指指”图图片片,当当单单击击某某方方向向时时,利利用用“DockDock”属属性性定定位位第第5 5个标签、并显示相关信息。个标签、并显示相关信息。 代码说明代码说明本章目录本章目录48VB.NET程序设计教程程序设计教程本书目录本书目录2.3.4 文本框文本框 文文本本框框是是一一个个文文本本编编辑辑区区域域,可可以以在在该该区区域域输输入、编辑、修改和显示正文内容。入、编辑、修改和显示正文内容。(1
39、)Text显示或输入的正文内容显示或输入的正文内容(2)Maxlength设设置置文文本本框框可可输输入入的的文文字字最最大大长长度度。默默认认值值为为32767,表表示示可可以以输输入入任任意意长长字字符串。符串。注注意意:在在VB.NETVB.NET中中字字符符长长度度以以字字为为单单位位,也也就就是是一一个个西西文文字字符符与与一一个个汉汉字字都都是是一一个个字字,长长度度为为1 1。本章目录本章目录49VB.NET程序设计教程程序设计教程本书目录本书目录(3)MultiLine多行属性多行属性设设置置为为True时时,文文本本框框可可以以输输入入或或显显示示多多行行正正文文,同同时时具
40、具有有文文字字处处理理器器的的自自动动换换行行功功能能,按按Enter键可插入一空行。键可插入一空行。(4)ScrollBars滚动条属性滚动条属性 None None 无滚动条无滚动条 Horizontal Horizontal 水平滚动条水平滚动条 Vertical Vertical 垂直滚动条垂直滚动条 Both Both 同时加水平和垂直滚动条同时加水平和垂直滚动条当当MultiLine为为True时,时,ScrollBars才有效才有效本章目录本章目录50VB.NET程序设计教程程序设计教程本书目录本书目录(5)PassWordChar设设置置显显示示文文本本的的替替代代符符。例例如
41、如,当当设设置置为为“* *”,则则在在文文本本框框输输入入的的内内容容均均以以“* *”显显示示,而而存存储储的的值值是是用用户户输输入入的的原原文文。一般用于设置口令的输入。一般用于设置口令的输入。(6)ReadOnly 指指定定文文本本控控件件是是否否可可被被编编辑辑,默默认认值值为为False(可可编编辑辑) ),当当设设置置为为True时时,文文本控件相当于标签控件的作用。本控件相当于标签控件的作用。本章目录本章目录51VB.NET程序设计教程程序设计教程本书目录本书目录(7)文本内容进行选择操作文本内容进行选择操作SelectionStart 选定的正文开始位置选定的正文开始位置S
42、electionLength 选定的正文长度选定的正文长度SelectedText 选定的正文内容选定的正文内容例例2.42.4 利用属性实现对文本信息的拷贝利用属性实现对文本信息的拷贝本章目录本章目录代码说明代码说明52VB.NET程序设计教程程序设计教程本书目录本书目录文本框文本框-事件事件(1)TextChanged事件事件当当Text属性值发生改变时引发该事件属性值发生改变时引发该事件例例在文本框每输入一个字符就引发一次事件在文本框每输入一个字符就引发一次事件(2)KeyPress事件事件按按下下并并且且释释放放键键盘盘上上的的一一个个键键时时,引引发发焦焦点点所所在在控控件件的的Ke
43、yPress事事件件,所所按按键键的的值值存存放放在在参参数数e.KeyChar中中例例对回车的判断对回车的判断 Asc(e.KeyChar)=13本章目录本章目录53VB.NET程序设计教程程序设计教程本书目录本书目录(3)LostFocus事件事件对象失去焦点时发生对象失去焦点时发生LostFocus事件事件该该事事件件主主要要是是用用来来对对数数据据进进行行验验证证和和确确认认,常常用于检查用于检查Text属性的内容。属性的内容。(4)GotFocus事件事件GotFocus事事件件与与LostFocus事事件件相相反反,当当一一个对象获得焦点时发生个对象获得焦点时发生本章目录本章目录5
44、4VB.NET程序设计教程程序设计教程本书目录本书目录文本框文本框-方法方法文文本本框框最最有有用用的的方方法法是是Focus,把把光光标标移移到到指定的文本框中。其形式如下:指定的文本框中。其形式如下: 对象对象.Focus例例2.5 2.5 对对输输入入的的数数据据进进行行合合法法性性检检验验,过过滤滤不不合法的数据。合法的数据。本章目录本章目录代码说明代码说明55VB.NET程序设计教程程序设计教程本书目录本书目录2.3.5 命令按钮命令按钮 用于程序运行时执行相应的事件用于程序运行时执行相应的事件1.属性属性(1)Text 命令按钮上显示的文字命令按钮上显示的文字(2)FlatStyl
45、e 按钮的外观按钮的外观该属性有该属性有4个枚举值:个枚举值:Flat以平面显示按钮以平面显示按钮Popup鼠鼠标标在在按按钮钮上上以以Flat形形式式显显示示,否否则则以以Standand显示显示Standand以三维效果显示以三维效果显示(默认默认)System由由操作系统决定外观形式操作系统决定外观形式本章目录本章目录56VB.NET程序设计教程程序设计教程本书目录本书目录命令按钮命令按钮 (3)BackGroundImage(4)TextAlign、ImageAlign设置文本、图形在按钮上的对齐方式设置文本、图形在按钮上的对齐方式2.事件事件命令按钮一般接收命令按钮一般接收Click
46、事件事件本章目录本章目录57VB.NET程序设计教程程序设计教程本书目录本书目录InputBox函数函数打打开开一一个个对对话话框框,等等待待用用户户输输入入,返返回回字字符符串串类型的输入值。类型的输入值。形形式式:InputBox(提提示示,标标题题,默默认认值值,x坐坐标标位置位置,y坐标位置坐标位置)提示项不能省略提示项不能省略。例例2.62.6利利用用InputBoxInputBox输输入入基基本本工工资资和和营营业业额额,按按营业额的营业额的5%5%提成,计算实发工资并显示。提成,计算实发工资并显示。数据输出和输入数据输出和输入本章目录本章目录代码说明代码说明58VB.NET程序设
47、计教程程序设计教程本书目录本书目录MsgBox函数形式:函数形式:变量变量%= MsgBox(提示提示,按钮按钮,标题标题)MsgBox过程形式:过程形式:MsgBox提示提示,按钮按钮,标题标题 MsgBox函数和函数和MsgBox过程过程 本章目录本章目录59VB.NET程序设计教程程序设计教程本书目录本书目录MsgBox按钮设置按钮设置 第第3个按钮为默认个按钮为默认512VB.NETDefaultButton3第第2个按钮为默认个按钮为默认256VB.NETDefaultButton2第第1个按钮为默认个按钮为默认0VB.NETDefaultButton1默认默认按钮按钮信息图标信息图
48、标64VB.NETInformation警告信息图标警告信息图标48VB.NETExclamation询问信息图标询问信息图标32VB.NETQuestion关键信息图标关键信息图标16VB.NETCritical图标图标类型类型重试、取消按钮重试、取消按钮5VB.NETRetryCancel是、否按钮是、否按钮4VB.NETYesNo是、否、取消按钮是、否、取消按钮3VB.NETYesNoCancel终止、重试、忽略按钮终止、重试、忽略按钮2VB.NETAboutRetryIgnore确定、取消按钮确定、取消按钮1VB.NETOkCancel确定按钮确定按钮0VB.NETOkOnly按钮按钮
49、数目数目描描述述值值内内部部常常数数分组分组本章目录本章目录60VB.NET程序设计教程程序设计教程本书目录本书目录MsgBox所选按钮返回值所选按钮返回值 例例2.7编编一一账账号号和和密密码码输输入入的的检检验验程程序序,当当输输入入不不正正确确,如如账账号号为为非非数数字字字字符符,密密码码不不正正确确等等,显显示示有有关关信息,再输入。信息,再输入。VBNo7否否VBYes6是是VBIgnore5忽略忽略VBRetry4重试重试VBAbort3终止终止VBCancel2取消取消VBOk1确定确定内部常数内部常数返回值返回值被单击的按钮被单击的按钮NoYesIgnoreRetryAbor
50、tCancelOk枚举值枚举值本章目录本章目录代码说明代码说明61VB.NET程序设计教程程序设计教程本书目录本书目录本章小节本章小节类类是是同同种种对对象象的的集集合合与与抽抽象象,包包含含所所创创建建对对象象的的属属性性描描述述和和行行为为特特征征的的定定义义,是是创创建建对对象象实实例的模板。例的模板。对象三要素:对象三要素:属性、事件属性、事件、方法方法属性的类型:属性的类型:窗体窗体是所有控件的容器是所有控件的容器基本控件基本控件标签、文本框、命令按钮标签、文本框、命令按钮本章目录本章目录62VB.NET程序设计教程程序设计教程本书目录本书目录第三章第三章 VB.NET语言基础语言基
51、础3.1变量、常量与数据类型变量、常量与数据类型3.2运算符和表达式运算符和表达式3.3常用函数常用函数3.4程序结构和编码规则程序结构和编码规则3.5综合应用综合应用本章目录本章目录63VB.NET程序设计教程程序设计教程本书目录本书目录3.1 变量、常量和数据类型变量、常量和数据类型例如表达式例如表达式:3.14*2*r3.1.1变量概述变量概述 变量变量在程序运行中其存储的值可以改变在程序运行中其存储的值可以改变命名规则:命名规则:v必必须须以以字字母母或或汉汉字字开开头头,由由字字母母、汉汉字字、数数字或下划线组成,长度小于等于字或下划线组成,长度小于等于255个字符个字符v不能使用不
52、能使用VB.NET中的关键字中的关键字(P42)vVB.NET不不区区分分变变量量名名的的大大小小写写;常常量量全全部部用大写字母表示用大写字母表示本章目录本章目录64VB.NET程序设计教程程序设计教程本书目录本书目录3.1.2 数据类型数据类型 本章目录本章目录Boolean2True或FalseInteger%4Single!4Double#8Date8Char2String$465VB.NET程序设计教程程序设计教程本书目录本书目录3.1.3变量声明变量声明 1.用用Dim语句显式声明变量语句显式声明变量Dim 变量名变量名 As As 类型类型=初始值初始值 As部分缺省,创建的变量
53、为部分缺省,创建的变量为Object类型类型初始值子句,表示给声明的变量赋值初始值子句,表示给声明的变量赋值一条一条Dim语句可同时定义多个变量语句可同时定义多个变量,由逗号分隔,由逗号分隔,这时不能给变量赋初值。这时不能给变量赋初值。例如:例如:Dimm,n,jAsInteger,x,yAsSingle,kk为为Object类型类型 本章目录本章目录66VB.NET程序设计教程程序设计教程本书目录本书目录3.1.4 常量常量 常量是在程序运行中不变的量,常量是在程序运行中不变的量,VB.NETVB.NET中有三中有三种常量:种常量:直接常量直接常量 其常数值直接反映了其类型其常数值直接反映了
54、其类型 符号常量符号常量 用户声明,用户声明,便于程序阅读或修改便于程序阅读或修改Const 符号常量名符号常量名 As As 类型类型 = = 表达式表达式系统常量系统常量 系统提供许多内部常量和枚举系统提供许多内部常量和枚举 例如:例如:vbCrLf vbCrLf 回车回车/ /换行组合符换行组合符 枚举枚举 如控件的颜色、边框线型等如控件的颜色、边框线型等 本章目录本章目录67VB.NET程序设计教程程序设计教程本书目录本书目录3.2 运算符和表达式运算符和表达式 运算符是表示实现某种运算的符号。运算符是表示实现某种运算的符号。VB.NET中中的运算符可分的运算符可分算术运算符算术运算符
55、、字符串运算符字符串运算符、关关系运算符系运算符和和逻辑运算符逻辑运算符四类。四类。本章目录本章目录68VB.NET程序设计教程程序设计教程本书目录本书目录3.2.1 算术运算符算术运算符(P55)例:例:5+10 mod 10 9 / 3+2 2 5+10 mod 10 9 / 3+2 2 结果结果? ?注意注意:对算术运算符两边的操作数应是数值:对算术运算符两边的操作数应是数值型,若是数字字符或逻辑型,则自动转换成型,若是数字字符或逻辑型,则自动转换成数值类型后再运算。数值类型后再运算。例如:例如:30-True结结果果是是31,True自自动动转转为为数数值值-1,False转为数值转为
56、数值0False+10+4结果是结果是14本章目录本章目录69VB.NET程序设计教程程序设计教程本书目录本书目录字符串运算符字符串运算符& 万能型万能型+ 有条件有条件(左右都是字符串左右都是字符串)1)数值型数值型:则进行算术加运算;则进行算术加运算;2)一个为数字字符,另一个为数值,自动将数一个为数字字符,另一个为数值,自动将数字字符转换为数值后进行算术加;字字符转换为数值后进行算术加;3)一个为非数字字符,另一个为数值型,出错。一个为非数字字符,另一个为数值型,出错。 操作操作结果结果操作操作结果结果ab&123ab123ab +12出错出错12&4561245612+45646812
57、&True12True12+True11注意:注意: 在变量后使用运算符时,变量与间应加一个空格在变量后使用运算符时,变量与间应加一个空格本章目录本章目录70VB.NET程序设计教程程序设计教程本书目录本书目录关系运算符关系运算符关系运算符是双目运算符,作用是对两个操作数进行大关系运算符是双目运算符,作用是对两个操作数进行大小比较,若关系成立,则返回小比较,若关系成立,则返回True,否则返回,否则返回False。操作数可以是数值型、字符型。操作数可以是数值型、字符型。本章目录本章目录运算符运算符例例结果结果=ABCDE=ABRFalseABCDEABRFalse=bc=abcdeTrue23
58、3False=23=3TrueabcabcdeTrue71VB.NET程序设计教程程序设计教程本书目录本书目录“1”“2”“A”“B”“a”字符串2;3.如果字符串1的第n位的ASCII码值小于字符串2的第n位的ASCII码值则输出结果:-1表示字符串1字符串2;4.如果每一位的ASCII码值都相等,而且长度相同,则输出结果:0表示字符串1=字符串2;5.如果字符串1是字符串2的前m位,例如abcd与abcdef比较,则字符串1字符串2.72VB.NET程序设计教程程序设计教程本书目录本书目录逻辑运算符逻辑运算符 逻辑运算符除逻辑运算符除Not是单目运算符外,其余都是双目运算是单目运算符外,其
59、余都是双目运算符,作用是将操作数进行逻辑运算,结果是逻辑值符,作用是将操作数进行逻辑运算,结果是逻辑值True或或False。本章目录本章目录73VB.NET程序设计教程程序设计教程本书目录本书目录3.2.2表达式表达式 1.组成组成变量、常量、函数、运算符和圆括号变量、常量、函数、运算符和圆括号2.书写规则书写规则运算符不能相邻运算符不能相邻例例a+/b是错误的,是错误的,a+-b呢呢?乘号不能省略乘号不能省略例例x乘以乘以y应写成:应写成:x*y括号必须成对出现括号必须成对出现(均使用圆括号均使用圆括号)表达式从左到右书写表达式从左到右书写3.不同数据类型的转换不同数据类型的转换运算结果的
60、数据类型向精度高的数据类型靠运算结果的数据类型向精度高的数据类型靠IntegerLongSingle字符运算符字符运算符关系运算符关系运算符逻辑运算逻辑运算本章目录本章目录74VB.NET程序设计教程程序设计教程本书目录本书目录表达式书写举例表达式书写举例a*b*c*d/e/f/g 或或 a*b*c*d/(e*f*g) 例逻辑表达式书写例逻辑表达式书写,选拔优秀生的条件为:年龄选拔优秀生的条件为:年龄(Age)小小于于19岁,三门课总分岁,三门课总分(Total)高于高于285分,其中有一门为分,其中有一门为100分,如果其表达式写为:分,如果其表达式写为:Age285And(Mark1=10
61、0OrMark2=100OrMark3=100)如果取消括号有何问题?如果取消括号有何问题?sin(45*3.14/180)+(exp(10)+log(10)/sqrt(x+y+1)本章目录本章目录75VB.NET程序设计教程程序设计教程本书目录本书目录3.3 常用函数常用函数 (P465)3.3.1名称空间和类名称空间和类VB.NET通过名称空间把类库划分为不同的组,将通过名称空间把类库划分为不同的组,将功能相近的类划到相同的名称空间。名称空间,功能相近的类划到相同的名称空间。名称空间,可以方便地组织应用程序要使用的各个类。可以方便地组织应用程序要使用的各个类。本章目录本章目录76VB.NE
62、T程序设计教程程序设计教程本书目录本书目录3.3.1 名称空间和类名称空间和类(2)基础类库中的名称空间和类基础类库中的名称空间和类类别类别名称空间名称空间说说明明基本数基本数据类型据类型System基本的和经常使用的数据类型、基本的和经常使用的数据类型、事件和事件处理程序、接口、事件和事件处理程序、接口、属性和异常处理等属性和异常处理等编程基础编程基础 System.CollectionsSystem.IO对象集合对象集合文件管理及其输入文件管理及其输入/输出输出图形图形System.DrawingSystem.Windows.FormsGDI+Windows的应用程序的应用程序的丰富用户的
63、丰富用户数据库数据库System.DataADO.NET的各种对象的各种对象本章目录本章目录77VB.NET程序设计教程程序设计教程本书目录本书目录名称空间的使用名称空间的使用 引用名称空间的方法:引用名称空间的方法:项目引用项目引用新建一个项目时,新建一个项目时,VB.NET根据所根据所建项目类型,自动导入部分名称空间的引用建项目类型,自动导入部分名称空间的引用直接引用直接引用给出名称空间的全名,就可访问给出名称空间的全名,就可访问其中的任一个类及其各项内容其中的任一个类及其各项内容例例使用使用Math类开方函数类开方函数sqrt:Label1.Text=system.Math.sqrt(1
64、00)Imports语语句句导导入入在在代代码码中中就就可可直直接接使使用用名名称空间的类或成员。导入语句的格式:称空间的类或成员。导入语句的格式: Imports名称空间名称空间本章目录本章目录78VB.NET程序设计教程程序设计教程本书目录本书目录3.3.2数学函数数学函数 .NET中的数学函数包含在中的数学函数包含在Math类。使用前在模类。使用前在模块的开头用语句块的开头用语句Imports System.Math导入导入-43Int(-3.5)Int(3.5)取小于或等于取小于或等于N的最大整数的最大整数Int(N)2.3Log(10)自然对数自然对数Log(N)-33Fix(-3.
65、5)Fix(3.9)取整取整Fix(N)20.086Exp(3)exExp(N)1Cos(0)余弦函数余弦函数Cos(N)3.5Abs(-3.5)取绝对值取绝对值Abs(N)结果结果实例实例含义含义函数名函数名本章目录本章目录79VB.NET程序设计教程程序设计教程本书目录本书目录数学函数数学函数 0Tan(0)正切函数正切函数Tan(N)3Sqrt(9)平方根平方根Sqrt(N)-1Sgn(-3.5)符号函数符号函数Sgn(N)0Sin(0)正弦函数正弦函数Sin(N)-44Round(-3.5)Round(3.5)四舍五入取整四舍五入取整Round(N)0,1)之间的数之间的数Rnd产生随
66、机数产生随机数Rnd(N)结果结果实例实例含义含义函数名函数名Rnd函数返回函数返回0和和1(包括(包括0但不包括但不包括1)之间的双精度随机数)之间的双精度随机数.每每次运行时,要产生不同序列的随机数,先执行次运行时,要产生不同序列的随机数,先执行Randomize语句。语句。产生产生ab的之间的随机整数:的之间的随机整数:Int(Rnd *(b-a+1)+a)本章目录本章目录80VB.NET程序设计教程程序设计教程本书目录本书目录3.3.3 转换函数转换函数 ABCUcase$(abc)小写字母转为大写字母小写字母转为大写字母Ucase(C)144Oct$(100)十进制转换成八进制十进制
67、转换成八进制Oct$(N)123.45Str$(123.45)数值转换为字符串数值转换为字符串Str(N)123Val(123AB)数字字符串转换为数值数字字符串转换为数值Val(C)abcLcase$(ABC)大写字母转为小写字母大写字母转为小写字母Lcase$(C)64Hex(100)十进制转换成十六进制十进制转换成十六进制Hex(N)AChr$(65)ASCII码值转换成字符码值转换成字符Chr(N)2003-11-13CDate(2003/11/13)转换成日期型转换成日期型CDate65Asc(A)字符转换成字符转换成ASCII码值码值Asc(C)结果结果实例实例功能功能函数名函数名
68、本章目录本章目录81VB.NET程序设计教程程序设计教程本书目录本书目录3.3.4 字符串函数字符串函数 System.String类的成员类的成员(函数函数)本章目录本章目录BCDMid(ABCDE,2,3)取字符子串取字符子串Mid(C,N1,N2)ABCDTrim( ABCD )去掉字符串两边空格去掉字符串两边空格Trim(C)A3AB3Replace(ACDABCD,CD,3)用用C2替代替代C1Replace(C,C1,C2)Space(3)产生产生N个空格的字符串个空格的字符串Space(N)4Len(AB教育教育)字符串长度字符串长度Len(C)ABCLeft(ABCDE,3)取
69、字符串左边取字符串左边n个字符个字符Left(C,N)7InStr(2,EFABCDEFG,EF)从从n开始,在开始,在C1中找中找C2InStr(N,C1,C2,M)结果结果实例实例说明说明函数名函数名82VB.NET程序设计教程程序设计教程本书目录本书目录字符串函数字符串函数 ABCDTRim(“ ABCD )去掉字符串两边的空格去掉字符串两边的空格TRim(C)DCBAStrReverse(ABCD)将字符串反序将字符串反序StrReverse(C)AAAString(3,ABC)重复首字符重复首字符n次次String(N,C)S(0)=123S(1)=“abS=Split(123,ab
70、,)将字符串分隔成字符数将字符串分隔成字符数组。与组。与Join作用相反作用相反Split(C,D)“Space(3)产生产生n个空格的字符串个空格的字符串Space(N)ABCDRTrim(ABCD )去掉字符串右边空格去掉字符串右边空格RTrim(C)“BCDRight(ABCD,3)取字符串右边取字符串右边n个字符个字符Right(C,N)结果结果实例实例说明说明函数名函数名本章目录本章目录注意注意:Left和和Right函数必须加限定函数必须加限定:Microsoft.Visualbasic否则认为是控件的相应属性否则认为是控件的相应属性83VB.NET程序设计教程程序设计教程本书目录
71、本书目录3.3.5 日期函数日期函数 Second(#1:12:56PM#)返回秒返回秒(059)Second(C|N)TimeOfDay返回系统时间返回系统时间TimeOfDay()Year(365)返回年代号返回年代号(17532078)Year(C|N)Now返回系统日期和时间返回系统日期和时间NowMonth(2003,05,01)返回月份代号返回月份代号(112)Month(C|N)Minute(#1:12:56PM#)返回分钟返回分钟(059)Minute(C|N)Hour(#1:12:56PM#)返回小时返回小时(024)Hour(C|N)Day(2003,05,01)返回日期代
72、号返回日期代号(131)Day(C|N)Date返回系统日期返回系统日期Date()实例实例说明说明函数名函数名本章目录本章目录84VB.NET程序设计教程程序设计教程本书目录本书目录3.3.6 Shell函数函数 Shell函数可调用各种应用程序。格式如下:函数可调用各种应用程序。格式如下:Shell(命令字符串命令字符串,1)命命令令字字符符串串为为要要执执行行的的应应用用程程序序名名(包包括括路路径径),必必须须是是可可执执行行文件文件(.exe、.bat)。第第二二参参数数为为枚枚举举中中选选择择的的值值,该该枚枚举举与与要要在在其其中中运运行行程程序序的的窗窗口口 样样 式式 相相
73、对对 应应 。 如如 果果 省省 略略 Style, 则则 Shell使使 用用 AppWinStyle.MinimizedFocus,这这将将使使程程序序以以最最小小化化启启动动并并具有焦点。具有焦点。函数调用成功返回一个任务标识函数调用成功返回一个任务标识ID,不成功,则返回,不成功,则返回0。 例例 i=Shell(C:WINDOWSsystem32calc.exe,1)本章目录本章目录85VB.NET程序设计教程程序设计教程本书目录本书目录3.4 程序结构和编码规则程序结构和编码规则 本章目录本章目录86VB.NET程序设计教程程序设计教程本书目录本书目录程序结构和编码规则程序结构和编
74、码规则 编码规则编码规则(1)VB.NET代码不区分字母的大小写代码不区分字母的大小写关键字关键字首字母自动转换成大写,其余字母转换成小写。首字母自动转换成大写,其余字母转换成小写。(2)语句书写自由语句书写自由一一行行上上可可书书写写多多句句语语句句(用用冒冒号号分分隔隔),一一行行最最多多255个个字符。字符。单单行行语语句句可可分分若若干干行行书书写写,在在本本行行后后加加入入续续行行符符(空空格格和下划线和下划线)。本章目录本章目录87VB.NET程序设计教程程序设计教程本书目录本书目录3.5 综合应用综合应用例例3.3模仿字处理软件中字符串替换功能和字幕滚动。模仿字处理软件中字符串替
75、换功能和字幕滚动。设计思路:设计思路:利利用用Shell函函数数调调用用winword.exe执执行行Word程程序序观观察察其其替换对话框。替换对话框。本例字符串替换功能实现方法:本例字符串替换功能实现方法:利用替换利用替换(Replace)函数实现函数实现标题显示标题显示:Form1.Caption=Space(n)&显示文字显示文字要要产产生生滚滚动动效效果果,可可用用时时钟钟(Timer1)控控件件和和Space函函数数,改变空格数达到自右向左滚动字幕效果。改变空格数达到自右向左滚动字幕效果。本章目录本章目录88VB.NET程序设计教程程序设计教程本书目录本书目录本章小节本章小节变量:
76、在程序运行中其存储的值可以改变变量:在程序运行中其存储的值可以改变值类型变量、引用类型变量值类型变量、引用类型变量变量声明变量声明Dim 变量名变量名 As 类型类型=初始值初始值q运运算算符符算算术术运运算算符符、字字符符串串运运算算符符、关关系系运运算算符和逻辑运算符符和逻辑运算符名称空间导入名称空间导入 Imports名称空间名称空间数学函数使用数学函数使用Imports System.MathShell函数函数 调用各种应用程序调用各种应用程序本章目录本章目录89VB.NET程序设计教程程序设计教程本书目录本书目录第四章第四章 基本的控制结构基本的控制结构4.1 顺序结构顺序结构4.2
77、 选择结构选择结构4.3 循环结构循环结构4.4 其它辅助控制语句其它辅助控制语句4.5 综合应用综合应用4.6 程序调试程序调试本章目录本章目录90VB.NET程序设计教程程序设计教程本书目录本书目录4.1 顺序结构顺序结构 VB.NET也具有结构化程序设计的三种结构也具有结构化程序设计的三种结构顺序结构顺序结构选择结构选择结构循环结构循环结构它们是程序设计的基础。它们是程序设计的基础。本章目录本章目录91VB.NET程序设计教程程序设计教程本书目录本书目录4.1.1 赋值语句赋值语句 形式:形式:变量名表达式变量名表达式计算右边表达式的值,然后赋给左边的变量。计算右边表达式的值,然后赋给左
78、边的变量。sngRate=0.1sngRate为单精度变量,赋值为单精度变量,赋值0.1TextBox1.Text清除文本框的内容清除文本框的内容TextBox1.Text欢迎使用欢迎使用VB.Net本章目录本章目录92VB.NET程序设计教程程序设计教程本书目录本书目录复合赋值语句复合赋值语句 复合赋值运算符,其作用简化程序代码。复合赋值运算符,其作用简化程序代码。语句形式:语句形式:变量名变量名 复合赋值运算符复合赋值运算符 表达式表达式复合赋值运算符:复合赋值运算符:+=、-=、*=、=、/=、=、&=例如:例如:a*=b+4等价于等价于a=a*(b+4)本章目录本章目录93VB.NET
79、程序设计教程程序设计教程本书目录本书目录常用复合赋值语句常用复合赋值语句 v累加累加sum+=x等价于等价于sum=sum+xv计数计数n+=1等价于等价于n=n+1v显示多行信息显示多行信息利用利用&=来实现来实现例如:例如:TextBox1.Text=VB.NET&vbCrLfTextBox1.Text&=程序设计教程本章目录本章目录94VB.NET程序设计教程程序设计教程本书目录本书目录赋值语句注意点赋值语句注意点赋值语句不允许写成赋值语句不允许写成表达式变量表达式变量。赋值号左边的变量只能是赋值号左边的变量只能是变量变量或或对象对象. .属性属性,不能是常量、常数符号、表达式。下面均为
80、错不能是常量、常数符号、表达式。下面均为错误的赋值语句:误的赋值语句:Now()=x+y 左边是表达式左边是表达式(函数函数)5=sqrt(s)+x+y 左边是常量左边是常量本章目录本章目录95VB.NET程序设计教程程序设计教程本书目录本书目录4.2 选择结构选择结构 VB.NET中中提提供供了了多多种种形形式式的的条条件件语语句句来来实实现现选选择择结结构构,有有If条条件件语语句句和和Select情情况况语语句句等等。它它们们都都是是对对条条件件进进行行判判断断,根根据据判判断断结结果,选择执行不同的分支。果,选择执行不同的分支。本章目录本章目录96VB.NET程序设计教程程序设计教程本
81、书目录本书目录4.2.1 If条件语句条件语句 1.IfThen语句语句(单分支结构单分支结构)If Then 语句块语句块(可以是一句或多句语句)(可以是一句或多句语句) End If或或 If Then 表达式:关系表达式、逻辑表达式,算术表达式。表达式:关系表达式、逻辑表达式,算术表达式。该语句的作用是当表达式的值为该语句的作用是当表达式的值为True,执行,执行Then后后面的语句块,否则不做任何操作。面的语句块,否则不做任何操作。本章目录本章目录IF演示演示97VB.NET程序设计教程程序设计教程本书目录本书目录单分支结构单分支结构 例:例:已知两个数已知两个数x x和和y y,比较
82、它们的大小,使得,比较它们的大小,使得x x大于大于y y。IfxyThent=xx=yy=tEndIf或或IfxyThent=x:x=y:y=t简单简单IfIf形式无形式无End IfEnd If时,只能是一句语句或语句间用时,只能是一句语句或语句间用冒号分隔,而且必须在一行上书写。冒号分隔,而且必须在一行上书写。本章目录本章目录98VB.NET程序设计教程程序设计教程本书目录本书目录双分支结构双分支结构2.IfThenElse语句语句If 表达式表达式 Then语句块语句块1Else语句块语句块2End If或或If 表达式表达式 Then语句语句1 Else语句语句2当当表表达达式式的的
83、值值为为True时时,执执行行Then后后面面的的语句块语句块1,否则执行,否则执行Else后面的语句块后面的语句块2本章目录本章目录99VB.NET程序设计教程程序设计教程本书目录本书目录双分支结构例双分支结构例计算分段函数计算分段函数单分支单分支ifx=0theny=cos(x)x3+3*x结构实现结构实现Ifx0Theny=sin(x)+sqrt(x*x+1)Ifx0Then双分支双分支y=sin(x)+sqr(x*x+1)Else结构实现结构实现y=cos(x)x3+3*xEndIf本章目录本章目录100VB.NET程序设计教程程序设计教程本书目录本书目录多分支结构多分支结构 3.If
84、ThenElseIf语句语句 If 表达式表达式1 Then 语句块语句块1 ElseIf 表达式表达式2 Then 语句块语句块2 Else语句块语句块n+1 End If作用:根据不同的表达式值确定执行哪个语句块作用:根据不同的表达式值确定执行哪个语句块本章目录本章目录101VB.NET程序设计教程程序设计教程本书目录本书目录例例4.5 4.5 已知变量已知变量chch中存放了一个字符,判断该字符是字母字符、中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。数字字符还是其他字符。IfUCase(ch)=AAndUCase(ch)=0Andch=9Then数字字符数字字符MsgB
85、ox(ch+是数字字符是数字字符)Else除上述字符以外的字符除上述字符以外的字符MsgBox(ch+是其他字符是其他字符)EndIf不管有几个分支,依次判断,当某条件满足,执行相应不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有的语句,其余分支不再执行;若条件都不满足,且有ElseElse子句,则执行该语句块,否则什么也不执行。子句,则执行该语句块,否则什么也不执行。ElseIf不能写成不能写成 Else If多分支结构例多分支结构例本章目录本章目录注意问题注意问题102VB.NET程序设计教程程序设计教程本书目录本书目录If语句的嵌套是指语句的
86、嵌套是指If或或Else后面的语句块中又包含后面的语句块中又包含If语语If表达式表达式1ThenIf表达式表达式2ThenEndIfEndIfIfxyThent=x:x=y:y=tIfyzThent=y:y=z:z=tIfxyz用一个用一个IF语句和一个嵌套语句和一个嵌套的的IF语句实现语句实现本章目录本章目录103VB.NET程序设计教程程序设计教程本书目录本书目录4.2.2 Select Case语句语句 Select Case变量或表达式变量或表达式Case表达式列表表达式列表1 1语句块语句块1Case表达式列表表达式列表2 2语句块语句块2CaseElse语句块语句块n+1End
87、Select表达式列表表达式列表与与变量或表达式变量或表达式的类型必的类型必须相同,是下面须相同,是下面4 4种形式之一种形式之一:表达式表达式例例:A一组用逗号分隔的枚举一组用逗号分隔的枚举值值2,4,6,8表达式表达式1To表达式表达式260To100Is关系运算符表达式关系运算符表达式Is0Andy0ThenMsgBox(在第一象限在第一象限)ElseIfx0ThenMsgBox(在第二象限在第二象限)ElseIfx0Andy0Andy0Andy0MsgBox(“在第一象限在第一象限”)Casex0MsgBox(“在第二象限在第二象限”)Casex0Andy0Andyy,x,y)该语句与
88、如下语句等价该语句与如下语句等价:IfxyThenTmax=xElseTmax=y本章目录本章目录107VB.NET程序设计教程程序设计教程本书目录本书目录4.2.3 条件函数条件函数 (2)Choose函数函数 Choose(整数表达式,选项列表整数表达式,选项列表)根据表达式的值根据表达式的值i,i,返回选项列表中第返回选项列表中第i个选项。如个选项。如果整数表达式的值越出选项范围时,返回果整数表达式的值越出选项范围时,返回Null。例例 根据根据NopNop的值,得到的值,得到+ +、- -、中的某运算符:中的某运算符:Op=Choose(Nop,+,- -,)本章目录本章目录Dimno
89、pAsInteger,opAsCharRandomize()nop=Int(Rnd()*4+1)op=Choose(nop,+,-,)MsgBox(nop=&nop&op=&op)108VB.NET程序设计教程程序设计教程本书目录本书目录4.3 循环结构循环结构(上机实验上机实验msgbox) 计计算算机机最最擅擅长长的的功功能能之之一一就就是是按按规规定定的的条条件,重复执行某些操作。件,重复执行某些操作。VB.NET中提供了两种类型的循环语句:中提供了两种类型的循环语句:For NextFor Next循环循环Do LoopDo Loop循环循环本章目录本章目录109VB.NET程序设计教
90、程程序设计教程本书目录本书目录4.3.1 For循环语句循环语句 For循环语句用于控制循环次数预知的循环结构。循环语句用于控制循环次数预知的循环结构。For 循环变量循环变量 初值初值 To 终值终值Step步长步长语句块语句块ExitFor语句块语句块Next 循环变量循环变量循环变量必须为数值型。循环变量必须为数值型。循环次数循环次数0初值初值终值终值=1时,可省略时,可省略终值终值=0死循环死循环步长步长例例4.9计算计算1100的奇数和 本章目录本章目录Dimi%,sum%Fori=1To100Step2sum=sum+iNextiMsgBox(sum)110VB.NET程序设计教程
91、程序设计教程本书目录本书目录For循环语句循环语句 例例4.10 4.10 将可打印的将可打印的ASCIIASCII码码制成表格输出制成表格输出 本章目录本章目录例例 判断输入的数是否为素数判断输入的数是否为素数素素数数就就是是除除1 1和和本本身身以以外外,不不能能被被其其他他任任何何整整数数整整除除的的数数。根根据据此此定定义义,判判别别某某数数m m是是否否为为素素数数最最简简单单的的方方法法就就是是依依次次用用i=2i=2m m-1-1去去除除,只只要要有有一一个个数数能能整整除除m m,m m就就不不是是素素数;否则数;否则m m是素数。是素数。 111VB.NET程序设计教程程序设
92、计教程本书目录本书目录思思 考考 题题u打印以下图形打印以下图形*112VB.NET程序设计教程程序设计教程本书目录本书目录4.3.2 DoLoop循环语句循环语句 Do循环用于控制循环次数未知的循环结构。循环用于控制循环次数未知的循环结构。形式形式1:Do While|Until语句块语句块ExitDo语句块语句块Loop形式形式1为先判断后执行,有可能一次也不执行;为先判断后执行,有可能一次也不执行;形式形式2为先执行后判断,至少执行一次。为先执行后判断,至少执行一次。例:例:列出输入数在列出输入数在1100间的所有倍数间的所有倍数形式形式2:Do语句块语句块ExitDo语句块语句块Loo
93、pWhile|Until本章目录本章目录113VB.NET程序设计教程程序设计教程本书目录本书目录循环例题循环例题例例4.11 4.11 我国有我国有1313亿人口,按人口年增长亿人口,按人口年增长0.8%0.8%计算,多少年后我国人口超过计算,多少年后我国人口超过2626亿。亿。解此问题两种方法,可根据公式:解此问题两种方法,可根据公式:直接利用标准函数对数可求得,但求得的年数不直接利用标准函数对数可求得,但求得的年数不为整数;也可利用循环求得为整数;也可利用循环求得。本章目录本章目录114VB.NET程序设计教程程序设计教程本书目录本书目录循环例题循环例题例例4.124.12用辗转相除法求
94、两自然数的最大公约数。用辗转相除法求两自然数的最大公约数。求最大公约数的算法思想:求最大公约数的算法思想:(1)对于两数对于两数m,n,使得使得mn(2)m除以除以n得余数得余数r例例m=14 ,n=6的最大公约数的最大公约数IfmnThent=m:m=n:n=tr=mmodnDoWhile(r0)m=nn=rr=mmodnLoopMsgBox“最大公约数最大公约数=”&n(3)若若r=0,则,则n为最大公约数,为最大公约数,结束;否则执行结束;否则执行(4)(4)mn,nr,再重复执行,再重复执行(2)本章目录本章目录代码说明代码说明流程图流程图115VB.NET程序设计教程程序设计教程本书
95、目录本书目录4.3.3 循环的嵌套循环的嵌套 在在一一个个循循环环体体内内又又包包含含了了一一个个完完整整的的循循环环结结构构称称为为循循环环的的嵌嵌套套。循循环环嵌嵌套套对对For循循环环语语句句和和DoLoop语句均适用。语句均适用。例例4.134.13 打印九九乘法表打印九九乘法表 思考:思考:打印上三角或下三角程序如何改动?打印上三角或下三角程序如何改动?本章目录本章目录代码说明代码说明116VB.NET程序设计教程程序设计教程本书目录本书目录循环的嵌套循环的嵌套u一个循环体内又包含了一个完整的循环一个循环体内又包含了一个完整的循环结构称为循环的嵌套结构称为循环的嵌套. .对于循环的嵌
96、套,要注意以下事项:1)内循环变量与外循环变量不能同名;2)外循环必须完全包含内循环,不能交叉;117VB.NET程序设计教程程序设计教程本书目录本书目录 For i =1 To 10 For j=1 To 20 Next j Next i For i=1 To 10 For j=1 To 20 Next i Next j118VB.NET程序设计教程程序设计教程本书目录本书目录 For i =1 To 10 For i=1 To 20 Next i Next i For i =1 To 10 Next i For i =1 To 10 Next i119VB.NET程序设计教程程序设计教程本
97、书目录本书目录循环的嵌套循环的嵌套例:逻辑断案。例:谁做好事。120VB.NET程序设计教程程序设计教程本书目录本书目录4.4 其他辅助控制语句其他辅助控制语句 例例4.144.14 判断输入的数是否为素数判断输入的数是否为素数素素数数就就是是除除1 1和和本本身身以以外外,不不能能被被其其他他任任何何整整数数整整除除的的数数。根根据据此此定定义义,判判别别某某数数m m是是否否为为素素数数最最简简单单的的方方法法就就是是依依次次用用i=2i=2m m-1-1去去除除,只只要要有有一一个个数数能能整整除除m m,m m就就不不是是素素数;否则数;否则m m是素数。是素数。 要求一定范围内的素数
98、,只要将要求一定范围内的素数,只要将m作为外循环体变量。作为外循环体变量。本章目录本章目录121VB.NET程序设计教程程序设计教程本书目录本书目录例:求例:求100100以内的所有素数。以内的所有素数。Form=2to100NextmFori=2tom-1ifmmodi=0thenExitForEndifNextiifi=mthenLabel1.text&=mEndif122VB.NET程序设计教程程序设计教程本书目录本书目录4.4.2 退出和结束语句退出和结束语句 1.Exit语句语句VB中中有有多多种种形形式式的的Exit语语句句,用用于于退退出出某某种种控控制结构的执行。制结构的执行。
99、Exit的形式如下:的形式如下: Exit For、Exit Do、 Exit Sub、Exit Function2.End语句语句独独立立的的End语语句句用用于于结结束束一一个个程程序序的的运运行行,它它可以放在任何事件过程中。可以放在任何事件过程中。本章目录本章目录123VB.NET程序设计教程程序设计教程本书目录本书目录4.5 综合应用综合应用 1.自测四则运算自测四则运算例例4.15由由计计算算机机自自动动产产生生四四则则运运算算题题,并并能能判判断断答答案案的正确性。的正确性。设计思路:设计思路:(1)通通过过随随机机函函数数Rnd产产生生试试题题的的操操作作数数和和运运算算符符,
100、运运算算符符+、-、可可对对应应编编号号14。产产生生表表达达式式通通过过Form_Load事件过程。事件过程。(2)需需要要有有一一个个全全局局变变量量保保存存四四则则运运算算题题的的正正确确答答案案,用户答案可通过文本框输入。用户答案可通过文本框输入。(3)本本题题主主要要将将随随机机函函数数、If语语句句、Select语语句句综综合合在在一起使用。一起使用。本章目录本章目录代码说明代码说明124VB.NET程序设计教程程序设计教程本书目录本书目录综合应用综合应用-级数求和级数求和例例4.164.16求自然对数求自然对数e e的近似值,其误差小于的近似值,其误差小于0.000010.000
101、01。近似公式近似公式分分析析:本本例例涉涉及及到到程程序序设设计计中中两两个个重重要要运运算算:累累加加和和连连乘乘i!。累累加加是是在在原原有有和和的的基基础础上上再再加加一一个个数数;连连乘乘则是在原有积的基础上再乘以一个数。则是在原有积的基础上再乘以一个数。该题先求该题先求i!,再将,再将1/i!进行累加,循环次数预先未知,可进行累加,循环次数预先未知,可先设置一个循环次数很大的值,然后在循环体内判断是先设置一个循环次数很大的值,然后在循环体内判断是否到达精度,当然也可用否到达精度,当然也可用DoWhile来实现。来实现。本章目录本章目录代码说明代码说明125VB.NET程序设计教程程
102、序设计教程本书目录本书目录综合应用综合应用-试凑法试凑法例例4.17百百元元买买百百鸡鸡。假假定定小小鸡鸡每每只只5角角,公公鸡鸡每每只只2元元,母鸡每只母鸡每只3元,编程求解购鸡方案。元,编程求解购鸡方案。分析:分析:(1)设母鸡、公鸡、小鸡各为设母鸡、公鸡、小鸡各为x、y、z,列出方程为:,列出方程为:x+y+z=1003x+2y+0.5z =100三个未知数,两个方程,此题求若干个整数解。三个未知数,两个方程,此题求若干个整数解。(2)计计算算机机求求解解此此类类问问题题,采采用用试试凑凑法法(也也称称为为穷穷举举法法)来来实实现现,即即将将可可能能出出现现的的各各种种情情况况一一一一罗
103、罗列列测测试试,判判断是否满足条件,采用循环结构来实现。断是否满足条件,采用循环结构来实现。本章目录本章目录126VB.NET程序设计教程程序设计教程本书目录本书目录综合应用综合应用-递推法递推法递递推推(迭迭代代)法法基基本本思思想想是是把把一一个个复复杂杂的的计计算算过过程程转转化化为为简简单单过过程程的的多多次次重重复复。每每次次都都从从旧旧值值的的基基础础上上递递推推出出新新值,并由新值代替旧值。值,并由新值代替旧值。例例4.18 4.18 小小猴猴有有桃桃若若干干,第第一一天天吃吃掉掉一一半半多多一一个个;第第二二天天吃吃剩剩下下桃桃子子的的一一半半多多一一个个;以以后后每每天天都都
104、吃吃尚尚存存桃桃子子的的一半多一个,到第一半多一个,到第7 7天只剩一个,问小猴原有桃多少?天只剩一个,问小猴原有桃多少?分分析析:用用后后一一天天的的数数推推出出前前一一天天的的桃桃子子数数。设设第第n天天的的桃子为桃子为xn,是前一天的桃子的二分之一减去,是前一天的桃子的二分之一减去1。迭代法迭代法类似的应用求高次方程的近似根。类似的应用求高次方程的近似根。本章目录本章目录127VB.NET程序设计教程程序设计教程本书目录本书目录 在在若若干干个个数数中中求求最最大大值值,一一般般先先假假设设一一个个较较小小的的数数为为最最大大值值的的初初值值,若若无无法法估估计计较较小小的的值值,则则取
105、取第第一一个个数数为为最最大大值值的的初初值值;然然后后将将每每一一个个数数与与最最大大值值比比较较,若若该该数数大大于于最最大大值值,将将该该数数替替换换为为最大值;依次逐一比较。最大值;依次逐一比较。综合应用综合应用-求最大或最小值求最大或最小值128VB.NET程序设计教程程序设计教程本书目录本书目录例例. . 随机产生随机产生1010个个100100200200之间的数,求最大值。之间的数,求最大值。 Dimx%,i%,maxx=Int(Rnd()*101+100)max=xTextBox1.Text&=x&vbCrLfFori=1To9x=Int(Rnd()*101+100)Text
106、Box1.Text&=x&vbCrLfIfxmaxThenmax=xNextiTextBox1.Text&=最大值=&max&vbCrLf129VB.NET程序设计教程程序设计教程本书目录本书目录例 实际应用,求最短残料。实际应用,求最短残料。 有有一一根根长长度度为为321321米米的的钢钢材材料料,要要将将它它截截取取成成两两种种规规格格a a、b b的的长长度度分分别别为为1717米米和和2727米米的的短短料料,每每种种至至少少 1 1 段段,问问分分隔隔成成 a a,b b 各各多多少少段段后,剩余的残料后,剩余的残料 r r 最少?最少?分析分析,该题利用,该题利用“试凑法试凑法”
107、通过二重循环求残通过二重循环求残料料 r r 的最小值的最小值( (正数正数) ),残料不可能是负数。,残料不可能是负数。130VB.NET程序设计教程程序设计教程本书目录本书目录Dima%,b%,r!,ia%,ib%r=321 最小值初值取钢材料的长度最小值初值取钢材料的长度Forb=1To32127 b最多的段数最多的段数Fora=1To(321-b*27)17 a最多的段数最多的段数t=321-b*27-a*17当前的残料当前的残料Ift0Andt0例例设计一个倒计时应用程序设计一个倒计时应用程序例例用一个定时器控制蝴蝶在窗体内的飞舞用一个定时器控制蝴蝶在窗体内的飞舞 本章目录本章目录1
108、40VB.NET程序设计教程程序设计教程本书目录本书目录综合应用综合应用例例利用时钟和图像控件,模拟自动红绿灯利用时钟和图像控件,模拟自动红绿灯 分析:改变时钟的分析:改变时钟的Interval属性来延迟不同颜色属性来延迟不同颜色的灯。例如,红灯延迟的灯。例如,红灯延迟2秒,则在切换到红灯后秒,则在切换到红灯后把把Interval设置为设置为2000,这样过,这样过2秒后发生秒后发生Timer事件再切换到其它颜色的灯。事件再切换到其它颜色的灯。用变量用变量i控制红绿灯的自动切换,它的值在控制红绿灯的自动切换,它的值在0 2之间循环变化:之间循环变化:i为为0时显示红灯;时显示红灯;i为为1时显
109、示黄时显示黄灯;灯;i为为2时显示绿灯。时显示绿灯。本章目录本章目录141VB.NET程序设计教程程序设计教程本书目录本书目录第五章第五章 数数 组组 5.1 数组的概念数组的概念5.2 数组声明及初始化数组声明及初始化5.3 重定义数组大小重定义数组大小5.4 数组的基本操作和排序数组的基本操作和排序5.5 结构类型及其数组结构类型及其数组5.6 综合应用综合应用本章目录本章目录142VB.NET程序设计教程程序设计教程本书目录本书目录5.1 数组的概念数组的概念 1. 1. 引例引例例例5.1 5.1 求求100100个个学学生生的的平平均均成成绩绩,并并统统计计高高于于平平均均分分的的人
110、数。人数。用简单变量和循环,求平均成绩程序段如下:用简单变量和循环,求平均成绩程序段如下:aver=0Fori=1To100mark=InputBox(输入学生成绩输入学生成绩)aver=aver+markNextiaver=aver/100由由于于循循环环体体内内变变量量markmark只只能能放放一一个个学学生生的的成成绩绩,无无法法统统计计高高于于平平均均分分的的人人数数。若若用用简简单单变变量量保保存存100100个个学学生生的的成成绩绩,则则需需定定义义100100个个变变量量和和使使用用100100句句输输入入语语句句。由由此此引入了数组。引入了数组。 本章目录本章目录143VB.
111、NET程序设计教程程序设计教程本书目录本书目录数组的概念数组的概念 用数组用数组解决问题的程序如下:解决问题的程序如下:Dimmark(99)AsInteger声明数组声明数组markDimaver!,overn%,i%aver=0Fori=0To99输入成绩,求分数和输入成绩,求分数和mark(i)=InputBox(输入学生的成绩输入学生的成绩)aver=aver+mark(i)Nextiaver=aver/100求求100人的平均分人的平均分overn=0Fori=0To99统计高于平均分的人数统计高于平均分的人数Ifmark(i)averThenovern=overn+1NextiMs
112、gBox (MsgBox (平均分平均分: : & aver & & aver & 高于平均分人数高于平均分人数: : & overn) & overn)本章目录本章目录144VB.NET程序设计教程程序设计教程本书目录本书目录数组的概念数组的概念数数组组不不是是一一种种数数据据类类型型,而而是是一一组组相相同同类类型型的的变变量量的的集集合合。在在程程序序中中使使用用数数组组的的最最大大好好处处是是用用一一个个数数组组名名代代表表逻逻辑辑上上相相关关的的一一批批数数据据,用用下下标标表表示示该该数数组组中中的的各各个个元元素,和循环语句结合使用,使得程序书写简洁。素,和循环语句结合使用,使得
113、程序书写简洁。数数组组必必须须先先声声明明后后使使用用,数数组组声声明明后后在在内内存存可可分分配配一一块块连续的区域。连续的区域。利用利用Dim语句声明语句声明数组名数组名、类型类型、维数维数、数组大小数组大小声明时下标的个数确定数组的维数,最多可达声明时下标的个数确定数组的维数,最多可达3232维;维;本章目录本章目录145VB.NET程序设计教程程序设计教程本书目录本书目录数组的概念数组的概念Dimmark(99)AsInteger声声明明了了一一个个一一维维定定长长整整型型数数组组mark,共共有有100个个元元素素,下下标标范范围围为为0To99;mark数数组组的的各各元元素素是是
114、mark(0),mark(1),mark(99);mark(i)表表示示由由下下标标i的的值值决决定是哪一个元素。定是哪一个元素。mark数组内存分配如下:数组内存分配如下:mark(99)mark(99)mark(98mark(98) )mark(2)mark(2)mark(1)mark(1)mark(0)mark(0)每每个个数数组组元元素素有有一一个个唯唯一一的的顺顺序序号号,下下标标不不能能超超出出数数组组声声明明时时的的上上、下下界界范范围围,否否则则会会产产生生“索索引引超超出出了了数数组界限组界限”。数组元素的使用规则与同类型的简单变量相同。数组元素的使用规则与同类型的简单变量相
115、同。本章目录本章目录146VB.NET程序设计教程程序设计教程本书目录本书目录5.2数组声明及初始化数组声明及初始化 一维数组一维数组Dim 数组名数组名( (下标下标上界上界) )As类型类型下标下标上界为常数、已有值的表达式或变量。上界为常数、已有值的表达式或变量。下标下界为下标下界为0。一维数组的大小为:下标上界。一维数组的大小为:下标上界+1。例例 Dima(10)AsInteger,Dimst(5)AsString声明了一维整型数组声明了一维整型数组a、有、有11个元素;下标的范围个元素;下标的范围010。若在程序中使用。若在程序中使用a(11),则系统会显示,则系统会显示“索引超出
116、索引超出了数组界限了数组界限”。s st是一维字符串类型数组、有是一维字符串类型数组、有6个元素;下标的范围个元素;下标的范围0 05。本章目录本章目录147VB.NET程序设计教程程序设计教程本书目录本书目录多维数组声明多维数组声明 Dim 数组名数组名(下标下标1,下标,下标2)As类型类型下下标标数数决决定定了了数数组组的的维维数数,每每一一维维的的大大小小=上上界界+1+1;数组的大小为每一维大小的乘积。数组的大小为每一维大小的乘积。例例Dimx(2,4)AsLong声明了一个长整型的二维数组声明了一个长整型的二维数组x;共占据;共占据35个长整型个长整型变量的空间变量的空间x(1,4
117、)x(1,3)x(1,2)x(1,1)x(1,0)x(2,4)x(2,3)x(2,2)x(2,1)x(2,0)x(0,4)x(0,3)x(0,2)x(0,1)x(0,0)本章目录本章目录148VB.NET程序设计教程程序设计教程本书目录本书目录数组的初始化数组的初始化 VB.NETVB.NET提提供供了了对对数数组组的的初初始始化化功功能能,也也就就是是在在定定义义数数组的同时,为数组元素赋初值。形式:组的同时,为数组元素赋初值。形式:Dim数组数组()As类型类型=常数常数1,常数,常数n一维一维Dim数组数组(,)As类型类型=行行1常数常数,行行m常数常数例例 Dim Dim x(,)
118、x(,) As As Integer Integer = = 1,2,3,4, 1,2,3,4, 5,6,7,85,6,7,812345678数组数组x本章目录本章目录149VB.NET程序设计教程程序设计教程本书目录本书目录5.3重定义数组大小重定义数组大小 对已经存在的数组可用对已经存在的数组可用ReDim语句改变语句改变数组数组大小大小 ReDim 数组名数组名 (下标下标,下标下标2)例例DimsArray(2,3)AsSingleSubForm_Load()ReDimsArray(4,8)EndSub在过程外声明了二维数组在过程外声明了二维数组sArray,在,在Form1_Load
119、事件中重新指明二维数组的大小为事件中重新指明二维数组的大小为5行行9列。列。本章目录本章目录150VB.NET程序设计教程程序设计教程本书目录本书目录重定义数组大小重定义数组大小注意:注意:v Dim Dim 是说明语句,可出现在程序的任何地方,是说明语句,可出现在程序的任何地方,而而ReDim ReDim 是执行语句,只能出现在过程中是执行语句,只能出现在过程中 v 在在过过程程中中可可多多次次使使用用ReDimReDim语语句句来来改改变变数数组组的大小,但不能改变维数和类型的大小,但不能改变维数和类型v 可可在在ReDim ReDim 后后加加PreservePreserve参参数数用用
120、来来保保留留数数组组中中的的数数据据,若若使使用用PreservePreserve参参数数后后,只只能能改改变变最后一维的大小。最后一维的大小。例例5.2对例对例5.1改进,根据指定人数输入学生的成绩,改进,根据指定人数输入学生的成绩,计算的平均分和高于平均分的人数计算的平均分和高于平均分的人数。本章目录本章目录151VB.NET程序设计教程程序设计教程本书目录本书目录5.4数组的基本操作和排序数组的基本操作和排序 5.4.1数组的输入数组的输入通过通过TextBox控件或控件或InputBox函数逐一输入函数逐一输入例例Dimsb(3,4)ASIntegerFori=0To3Forj=0To
121、4sb(I,j)=InputBox(输入输入&i&“,&j&元素元素)NextjNexti本章目录本章目录152VB.NET程序设计教程程序设计教程本书目录本书目录5.4.2数组的输出数组的输出 例例5.35.3 形形成成5555的的方方阵阵,分分别别输输出出方方阵阵中中各各元元素素和和下下三角元素三角元素方方阵阵规规律律:第第一一行行的的元元素素为为0 04 4,以以后后每每一一行行是是前前一一行对应元素增加行对应元素增加5 5上上三三角角规规律律: : 每每一一行行的的起起始始列列与与行行号号相相同同, ,只只要要控控制制内循环的初值内循环的初值 用用Space(4-Len(Trim(sc
122、(i,j)Space(4-Len(Trim(sc(i,j)控制输出的空格,控制输出的空格,本章目录本章目录代码说明代码说明153VB.NET程序设计教程程序设计教程本书目录本书目录5.4.3求数组和、最值、位置求数组和、最值、位置例例5.45.4 求一维数组中各元素之和、最小数组元素,求一维数组中各元素之和、最小数组元素,并将最小值数组元素与数组中第一个元素交换并将最小值数组元素与数组中第一个元素交换v求元素和求元素和 通过循环将每个元素进行累加通过循环将每个元素进行累加 v求数组中最小元素求数组中最小元素 假设第一个元素为最小,假设第一个元素为最小,然后将该数与其他元素逐一比较,若发现小于最
123、然后将该数与其他元素逐一比较,若发现小于最小值,就用新值替换最小值,同时记录下标值。小值,就用新值替换最小值,同时记录下标值。v求最大值的方法与求最小值相似求最大值的方法与求最小值相似本章目录本章目录154VB.NET程序设计教程程序设计教程本书目录本书目录交换元素交换元素下标下标0123456789初值初值26 4361873319 37597669下标下标0123456789初值初值19 4361873326 37597669本章目录本章目录155VB.NET程序设计教程程序设计教程本书目录本书目录5.4.4数组排序数组排序排序是将一组数按递增或递减的次序排列,排序是将一组数按递增或递减的
124、次序排列,例如按学生的成绩、球赛积分等排序。排例如按学生的成绩、球赛积分等排序。排序的算法有许多,常用的有序的算法有许多,常用的有选择法选择法、冒泡冒泡法法、插入法插入法、合并排序合并排序等。等。选择法排序选择法排序基本思想:每次在若干个无序数中找最小基本思想:每次在若干个无序数中找最小(大大)数,并放在相应的位置。数,并放在相应的位置。本章目录本章目录156VB.NET程序设计教程程序设计教程本书目录本书目录5.4.4数组排序数组排序n个数的序列,用个数的序列,用选择法选择法按递增次序按递增次序排序排序的步骤:的步骤:1)从从n个数中找出最小数的下标,出了内循环,个数中找出最小数的下标,出了
125、内循环,最小数与第最小数与第1个数交换位置;通过这一轮排序,个数交换位置;通过这一轮排序,第第1个数已确定好。个数已确定好。2)除已排序的数外,其余数再按步骤除已排序的数外,其余数再按步骤1)的方法选的方法选出最小的数,与未排序数中的第出最小的数,与未排序数中的第1个数交换位置。个数交换位置。3)重复步骤重复步骤2),最后构成递增序列。,最后构成递增序列。选择法演示选择法演示本章目录本章目录157VB.NET程序设计教程程序设计教程本书目录本书目录选择法排序选择法排序例例5.5 5.5 对已知存放在数组中的对已知存放在数组中的6 6个数,用选择个数,用选择法按递增顺序排序。法按递增顺序排序。
126、原始数据原始数据869327a(1)a(2)a(3)a(4)a(5)a(6)第第1轮比较轮比较269387a(2)a(3)a(4)a(5)a(6)第第2轮比较轮比较239687a(3)a(4)a(5)a(6)第第3轮比较轮比较236987a(4)a(5)a(6)第第4轮比较轮比较236789a(5)a(6)第第5轮比较轮比较236789选择法排序过程示意选择法排序过程示意本章目录本章目录代码说明代码说明158VB.NET程序设计教程程序设计教程本书目录本书目录冒泡法排序冒泡法排序基本思想是:从第一个元素开始,对数组中两两基本思想是:从第一个元素开始,对数组中两两相邻的元素比较,将值较小的元素放
127、在前面,值相邻的元素比较,将值较小的元素放在前面,值较大的元素放在后面,一轮比较比较完毕,一个较大的元素放在后面,一轮比较比较完毕,一个最大的数沉底成为数组中的最后一个元素,一些最大的数沉底成为数组中的最后一个元素,一些较小的数如同气泡一样上浮一个位置。较小的数如同气泡一样上浮一个位置。n个数,个数,经过经过n-1轮比较后完成排序。轮比较后完成排序。冒泡法冒泡法演示演示本章目录本章目录159VB.NET程序设计教程程序设计教程本书目录本书目录冒泡法排序冒泡法排序原始数据原始数据869327a(1)a(2)a(3)a(4)a(5)a(6)第第1轮比较轮比较683279a(1)a(2)a(3)a(
128、4)a(5)第第2轮比较轮比较632789a(1)a(2)a(3)a(4)第第3轮比较轮比较326789a(1)a(2)a(3)第第4轮比较轮比较236789a(1)a(2)第第5轮比较轮比较236789例例5.6 5.6 用冒泡排序法实现例用冒泡排序法实现例5.55.5的问题。的问题。本章目录本章目录代码说明代码说明160VB.NET程序设计教程程序设计教程本书目录本书目录5.4.55.4.5插入数据插入数据插入数据基本思想是:插入数据基本思想是:1 1)首先查找待插入数据在数组中的位置)首先查找待插入数据在数组中的位置k k;2 2)然后从最后一个元素开始往前直到下标为)然后从最后一个元素
129、开始往前直到下标为k k的的元素依次往后移动一个位置;元素依次往后移动一个位置;3) 3) 第第k k个元素的位置腾出,将数据插入。个元素的位置腾出,将数据插入。例例5.75.7在有序数组在有序数组a a中插入数值中插入数值x x。本章目录本章目录代码说明代码说明数据插入演示数据插入演示161VB.NET程序设计教程程序设计教程本书目录本书目录5.4.6删除数据删除数据 删除操作首先也是要找到欲删除的元素的位置删除操作首先也是要找到欲删除的元素的位置k k;然后从;然后从k+1k+1到到n n个位置开始向前移动;最后将数个位置开始向前移动;最后将数组元素减组元素减1 1。 例例5.85.8要将
130、值为要将值为1313的元素删除。的元素删除。本章目录本章目录代码说明代码说明数据删除演示数据删除演示162VB.NET程序设计教程程序设计教程本书目录本书目录5.5 结构类型及其数组结构类型及其数组 数组存放性质相同的数据集合。若数组存放性质相同的数据集合。若不同类型不同类型信息信息作为一个整体来描述,例如姓名、性别、出生年作为一个整体来描述,例如姓名、性别、出生年月等,通过月等,通过“StructureStructure”结构类型来解决。结构类型来解决。1.1.结构类型定义:结构类型定义: Structure 结构类型名结构类型名 成员名声明成员名声明 End Structure 本章目录本
131、章目录163VB.NET程序设计教程程序设计教程本书目录本书目录结构类型结构类型 例如,定义一个有关学生信息的结构类型:例如,定义一个有关学生信息的结构类型:StructurestudTypestudType为类型名为类型名DimNameAsString姓名姓名DimSexAsChar 性别性别DimTelephoneAsLong电话电话DimSchoolAsString学校学校EndStructure本章目录本章目录164VB.NET程序设计教程程序设计教程本书目录本书目录2.结构变量的声明结构变量的声明定义了结构类型,就可在变量的声明时使用。定义了结构类型,就可在变量的声明时使用。Dim变
132、量名变量名As结构类型名结构类型名例如,如下语句:例如,如下语句:DimStudent,MyStudAsStudType声明声明Student、MyStud为两个同种类型的变量为两个同种类型的变量本章目录本章目录165VB.NET程序设计教程程序设计教程本书目录本书目录2.结构变量的声明结构变量的声明注意:注意:(1)不要混淆不要混淆StudType和和Student,前者如同,前者如同Integer等的类型名,后者根据该类型分配所需等的类型名,后者根据该类型分配所需的内存空间,存储各成员数据。的内存空间,存储各成员数据。(2)类型变量和数组相同之处它们都是由若干个类型变量和数组相同之处它们都
133、是由若干个成员(元素)组成;不同之处,前者的成员代表成员(元素)组成;不同之处,前者的成员代表不同性质、不同类型的数据,以各个不同的成员不同性质、不同类型的数据,以各个不同的成员名表示;而数组一般存放的是同种性质、同种类名表示;而数组一般存放的是同种性质、同种类型的数据,以下标表示不同的元素。型的数据,以下标表示不同的元素。本章目录本章目录166VB.NET程序设计教程程序设计教程本书目录本书目录结构变量成员的引用结构变量成员的引用引用结构类型变量中的某个成员,形式如下:引用结构类型变量中的某个成员,形式如下:结构类型变量名结构类型变量名.成员名成员名例如,例如,Student.NameStu
134、dent变量中的姓名变量中的姓名Student.Sex性别性别可利用可利用With语句简化成员引用:语句简化成员引用:With结构变量对象名结构变量对象名语句块语句块EndWithWithstudent.Name=张华张华.Sex=男男.School=同济大学同济大学EndWith本章目录本章目录167VB.NET程序设计教程程序设计教程本书目录本书目录4.结构数组及应用结构数组及应用 例例5.95.9 利利用用结结构构类类型型,声声明明一一个个结结构构数数组组,输输入入不不超超过过100100个个个个学学生生的的信信息息,显显示示全全部部信信息息和和查询某学校的学生情况。查询某学校的学生情况
135、。分析:自定义一个记录类型,由姓名、组成,声分析:自定义一个记录类型,由姓名、组成,声明一个存放最多明一个存放最多100个记录的数组,在标准模块个记录的数组,在标准模块自定义类型如下自定义类型如下本章目录本章目录代码说明代码说明168VB.NET程序设计教程程序设计教程本书目录本书目录综合应用综合应用-分类统计分类统计例例5.10 5.10 输入一串字符,统计各字母出现的输入一串字符,统计各字母出现的次数次数 v 统计统计2626个字母出现的个数,必须声明一个字母出现的个数,必须声明一个具有个具有2626个元素的数组,每个元素的下标个元素的数组,每个元素的下标表示对应的字母,元素的值表示对应字
136、母表示对应的字母,元素的值表示对应字母出现的次数。出现的次数。v 从输入的字符串中逐一取出字符,判断从输入的字符串中逐一取出字符,判断前转换成大写字符前转换成大写字符( (不区分大小写不区分大小写) ),再进,再进行判断。行判断。本章目录本章目录169VB.NET程序设计教程程序设计教程本书目录本书目录将数组中各元素交换将数组中各元素交换Dimt%,i%DimA(9)asSingle给数组赋值给数组赋值Fori=0To102t=A(i)A(i)=A(9-i)A(9-i)=tNexti170VB.NET程序设计教程程序设计教程本书目录本书目录1 1、 输入输入1010个学生三门课的成绩个学生三门
137、课的成绩Dim Mark (10,3)Dim Mark (10,3)For i = 1 To 10For i = 1 To 10 For j = 1 to 3 For j = 1 to 3 Mark(i, j)Mark(i, j) = InputBox( = InputBox(输入第输入第 & & i i _ _& & 个学生第个学生第 & & j j & &门课的成绩门课的成绩) Next j Next jNext i Next i 171VB.NET程序设计教程程序设计教程本书目录本书目录2 2、找出总分最高的学生和分数、找出总分最高的学生和分数DimSum%,Max%,iMax%,i%,
138、j%DimMark(10,3)asInteger给给Mark数组赋值数组赋值Max=0Fori=1to10Sum=0Forj=1To3Sum=Sum+Mark(i,j)NextjIfMaxSumthenMax=Sum:iMax=INexti172VB.NET程序设计教程程序设计教程本书目录本书目录特点:特点:第第1 1列和主对角线元素为列和主对角线元素为1 1从第从第3 3行第行第2 2列起到主对角线前一元素的各列起到主对角线前一元素的各元素为上一行前一列和本列元素和元素为上一行前一列和本列元素和例例:打印杨辉三角形:打印杨辉三角形173VB.NET程序设计教程程序设计教程本书目录本书目录数组
139、各元素初始化数组各元素初始化Dim s%(10, 10) Dim s%(10, 10) Dim i%, j%, n%Dim i%, j%, n%n = Val(Textbox1.Text)n = Val(Textbox1.Text)Fori=1Ton第第1列和主对角线元素为列和主对角线元素为1s(i,1)=1s(i,i)=1Nexti174VB.NET程序设计教程程序设计教程本书目录本书目录通过计算给数组元素赋值通过计算给数组元素赋值For i = 3 To n For i = 3 To n For j = 2 To i - 1 For j = 2 To i - 1 s(i, j) = s(i
140、 - 1, j - 1) + s(i - 1, j)s(i, j) = s(i - 1, j - 1) + s(i - 1, j) Next j Next jNext iNext i从第从第3行第行第2列起到主对角线前一元素的各元素为上列起到主对角线前一元素的各元素为上一行前一列和本列元素和一行前一列和本列元素和175VB.NET程序设计教程程序设计教程本书目录本书目录打印数组各元素打印数组各元素For i = 1 To nFor i = 1 To nFor j = 1 To i For j = 1 To i 每一个元素占每一个元素占5 5列列 label1.text &= s(i, j) &
141、 _label1.text &= s(i, j) & _ space(5-(len(str(s(i,j) space(5-(len(str(s(i,j) Next j Next j label1.text &= vbcrlf label1.text &= vbcrlfNext iNext i176VB.NET程序设计教程程序设计教程本书目录本书目录第六章第六章 过过 程程 6.1 函数过程的定义与调用函数过程的定义与调用6.2 子过程的定义与调用子过程的定义与调用6.3 参数传递参数传递6.4 递递 归归6.5 综合应用综合应用本章目录本章目录177VB.NET程序设计教程程序设计教程本书目录
142、本书目录6.1 函数过程的定义和调用函数过程的定义和调用 6.1.1引引例例6.1已已知知多多边边形形各各条条边边的长度,计算多边形的面积。的长度,计算多边形的面积。计计算算多多边边形形面面积积,可可将将多多边边形形分分解解成成若若干干个个三三角角形形。计计算算三三角角形形面面积积的公式如下:的公式如下:本章目录本章目录178VB.NET程序设计教程程序设计教程本书目录本书目录Dima!,b!,c!,d!,e!,f!,g!,S1!,S2!,S3!,S!,p!给边长变量赋值p=1/2*(a+b+c) S1=Sqrt(p*(p-a)*(p-b)*(p-c)p=1/2*(c+d+e) S2=Sqrt
143、(p*(p-c)*(p-d)*(p-e)p=1/2*(e+f+g) S3=Sqrt(p*(p-e)*(p-f)*(p-g)S=S1+S2+S3179VB.NET程序设计教程程序设计教程本书目录本书目录6.1.1 引例引例 定义函数过程定义函数过程areaFunctionarea(x!,y!,z!)AsSingleDimc!c=1/2*(x+y+z)area=Sqrt(c*(c-x)*(c-y)*(c-z)EndFunctionSubButton1_click()输入若干个三角形边长输入若干个三角形边长S=area(a,b,c)+area(c,d,e)+area(e,f,g)msgbox(“面积
144、面积=”&S)EndSub调调用用函函数数过过程程本章目录本章目录180VB.NET程序设计教程程序设计教程本书目录本书目录6.1.2函数过程的定义函数过程的定义 在窗体、模块等的代码窗口把插入点放在所有现在窗体、模块等的代码窗口把插入点放在所有现有过程之外,直接输入函数过程。定义函数过程有过程之外,直接输入函数过程。定义函数过程的形式如下:的形式如下:Public|PrivateFunction函数过程函数过程(形参形参)As类型类型变量声明变量声明语句块语句块Return表达式表达式或或函数名函数名=表达式表达式EndFunction本章目录本章目录181VB.NET程序设计教程程序设计教
145、程本书目录本书目录函数形式的说明函数形式的说明函数名函数名:命名规则同变量名参数列表形式参数列表形式:称为形参或哑元,仅表示参数的个数、类型,无值。函数名函数名=返回值返回值在函数体内至少对函数名赋值一次ExitFunction:表示退出函数。182VB.NET程序设计教程程序设计教程本书目录本书目录3.3.函数的调用函数的调用(同标准函数调用)格式:函数名函数名(参数列表参数列表)例如:PrivateSubButton1_Click()Dima!,b!,c!Label1.text=area(a,b,c)EndSubArea!(x!,y!,z!)参数列表:称为实参或实元,它必须与形参个数相同,
146、位置与类型一一对应。可以是同类型的常量、变量、表达式。183VB.NET程序设计教程程序设计教程本书目录本书目录函数过程的定义函数过程的定义vPublic全局函数过程,可被程序任何模块调用全局函数过程,可被程序任何模块调用vPrivate仅供本模块中的其它过程调用仅供本模块中的其它过程调用v形参形参(或称哑元或称哑元)只能是变量或数组名只能是变量或数组名(),仅表示仅表示参数的个数、类型,无值。参数的个数、类型,无值。例例6.2 6.2 编一求最大公约数的函数过程编一求最大公约数的函数过程 Functiongcd(m%,n%)AsIntegerIfmnThent=m:m=n:n=tr=mMod
147、nDowhiler0m=n:n=r:r=mModnLoopgcd=nEndFunction本章目录本章目录184VB.NET程序设计教程程序设计教程本书目录本书目录6.1.3函数过程的调用函数过程的调用 调用形式:调用形式:函数过程名函数过程名(参数列表参数列表)参数列表参数列表(称为实参或实元称为实参或实元):必须与形参个数相同,位置与:必须与形参个数相同,位置与类型一一对应。可以是同类型的常量、变量、表达式。类型一一对应。可以是同类型的常量、变量、表达式。 Sub Form1_Click() Handles MyBase.Click Dim x%, y%, z% x = 124: y =
148、24 z = gcd(x, y) MsgBox(最大公约数是最大公约数是 & z)End Sub 程序运程序运行流程行流程 Sub Form1_Click() Handles MyBase.Click Dim x%, y%, z% x = 124: y = 24 z = gcd(x, y)Functiongcd(m%,n%)AsIntegerIfmnThent=m:m=n:n=tr=mmodnDowhiler0m=n:n=r:r=mModnLoopgcd=nEndFunction MsgBox(最大公约数是最大公约数是 & z)End Sub 本章目录本章目录调用演示调用演示185VB.NET
149、程序设计教程程序设计教程本书目录本书目录函数过程的调用函数过程的调用 例例6.36.3编一函数,统计字符串中汉字的个数。编一函数,统计字符串中汉字的个数。若利用若利用Asc函数求其码值为小于函数求其码值为小于0(以补码表示)(以补码表示),而西文字符的最高位为,而西文字符的最高位为0,Asc函数求其码值函数求其码值为大于为大于0本章目录本章目录代码说明代码说明186VB.NET程序设计教程程序设计教程本书目录本书目录6.2 子过程的定义与调用子过程的定义与调用 6.2.1引例引例以下情况使用函数过程存在不足:以下情况使用函数过程存在不足:v不是为了获得某个函数值,而是为了某种功不是为了获得某个
150、函数值,而是为了某种功能的处理。能的处理。VB.NET中提供了使用更灵活的子过程。中提供了使用更灵活的子过程。例例6.4编一过程,对编一过程,对Label1控件进行移动,通过控件进行移动,通过参数参数Tag的值(的值(1或或-1)决定移动方向。)决定移动方向。该过程不是为了计算获得某个结果,而是进行该过程不是为了计算获得某个结果,而是进行对控件移动的处理。对控件移动的处理。本章目录本章目录代码说明代码说明187VB.NET程序设计教程程序设计教程本书目录本书目录主调程序调用Swap子过程PrivateSubForm_Click()Dima,ba=10b=20Swapa,bCallSwap(a,
151、b)Label1.text=a&bEndSubSwap (x,y)子过程的定义Public Sub Swap(x, y) Dim t t = x x = y y = tEnd Sub编写一个两个数交换的过程供多次调用。188VB.NET程序设计教程程序设计教程本书目录本书目录6.2.2子过程的定义子过程的定义 子过程定义的方法同函数过程,形式如下:子过程定义的方法同函数过程,形式如下:Sub 子过程名子过程名(参数列表参数列表)局部变量或常数定义局部变量或常数定义语句语句ExitSub 语句语句End Sub子过程名、形参同函数过程中对应项的规定。子过程名、形参同函数过程中对应项的规定。本章目
152、录本章目录189VB.NET程序设计教程程序设计教程本书目录本书目录子过程与函数过程的区别子过程与函数过程的区别u把某功能定义为函数过程还是子过程,没有把某功能定义为函数过程还是子过程,没有严格的规定。一般若程序有一个返回值时,函严格的规定。一般若程序有一个返回值时,函数过程直观;当有多个返回值时,习惯用子过数过程直观;当有多个返回值时,习惯用子过程。程。u 函数过程可以有返回值,函数名有类型。子函数过程可以有返回值,函数名有类型。子过程名没有值,过程名没有类型,不能在子过过程名没有值,过程名没有类型,不能在子过程体内对子过程名赋值。程体内对子过程名赋值。本章目录本章目录190VB.NET程序
153、设计教程程序设计教程本书目录本书目录参数问题参数问题u形参是过程与主调程序交互的接口,从主调形参是过程与主调程序交互的接口,从主调程序获得初值,或将计算结果返回给主调程序。程序获得初值,或将计算结果返回给主调程序。不要将过程中所有使用过的变量均作为形参。不要将过程中所有使用过的变量均作为形参。u形参没有具体的值,只代表了参数的个数、形参没有具体的值,只代表了参数的个数、位置、类型;只能是简单变量、数组名,不能位置、类型;只能是简单变量、数组名,不能是常量、数组元素、表达式。是常量、数组元素、表达式。本章目录本章目录191VB.NET程序设计教程程序设计教程本书目录本书目录子过程的调用是一句独立
154、的调用语句,有两种子过程的调用是一句独立的调用语句,有两种形式:形式:Call 子过程名子过程名(实参列表实参列表)子过程名子过程名(实参列表实参列表)用用Call关键字时,若有实参,则实参必须用圆括关键字时,若有实参,则实参必须用圆括号括起,无实参圆括号不可省略号括起,无实参圆括号不可省略6.2.3子过程调用子过程调用本章目录本章目录192VB.NET程序设计教程程序设计教程本书目录本书目录分别编一计算某级数部分和的子过程和函数过程,并调用。级数为:精度为:Function jishu1(x#, eps#)Function jishu1(x#, eps#) As Double Dim n%,
155、 s#, t#Dim n%, s#, t#n = 1: s = 0: t = 1n = 1: s = 0: t = 1Do While Abs(t) = epsDo While Abs(t) = eps s = s + t s = s + t t = t * x / n t = t * x / n n = n + 1 n = n + 1Loop Loop jishu1 = sjishu1 = sEnd FunctionEnd Function193VB.NET程序设计教程程序设计教程本书目录本书目录子过程定义: Sub jishu2Sub jishu2(ByRef s#, x#, eps#)D
156、im n%, t#Dim n%, t#n = 1: s = 0: t = 1n = 1: s = 0: t = 1Do While Abs(t) = epsDo While Abs(t) = eps s = s + t s = s + t t = t * x / n t = t * x / n n = n + 1 n = n + 1LoopLoopEnd SubEnd Sub调用函数过程f1 = jishu1(2#, 0.000001)调用子过程Call jishu2(f2, 2#, 0.000001)或 jishu2(f2,2#,0.00001) 194VB.NET程序设计教程程序设计教程本
157、书目录本书目录程序运行流程程序运行流程: PrivateSubButton1_Click()Dimf1#,f2#f1=jishu1(2#,0.000001)Calljishu2(f2,2#,0.000001)label1.text=f1&f2EndSubSubjishu2(Byrefs#,x#,eps#)s=表达式表达式EndSub找子过程名调用找子过程名调用jishu2Functionjishu1(x#,eps#)AsDoubljishu=表达式表达式EndFunction找函数名调用找函数名调用jishu1jishu1函数名带了值返回函数名带了值返回195VB.NET程序设计教程程序设计教
158、程本书目录本书目录196VB.NET程序设计教程程序设计教程本书目录本书目录197VB.NET程序设计教程程序设计教程本书目录本书目录赝品198VB.NET程序设计教程程序设计教程本书目录本书目录 赝品199VB.NET程序设计教程程序设计教程本书目录本书目录参数传递参数传递(主调过程的实参传递给被调过程的形参)(主调过程的实参传递给被调过程的形参)1.传址与传值传址与传值传址传址(ByRef):形参得到的是实参的形参得到的是实参的地址地址,当形参值的改变同时,当形参值的改变同时也改变实参的值。也改变实参的值。传值传值(ByVal):形参得到的是实参的形参得到的是实参的值值,形参值的改变,形参
159、值的改变不会影不会影响实参的值响实参的值,系统将实参的值复制给形参,实参与系统将实参的值复制给形参,实参与形参断开了联系。形参断开了联系。200VB.NET程序设计教程程序设计教程本书目录本书目录两个变量的交换。两个变量的交换。SubSwap1(ByValx%,ByValy%)t=x:x=y:y=tlabel1.text&=x=“&x&y=&yEndSubSubSwap2(ByRefx%,ByRefy%)t=x:x=y:y=tlabel1.text&=x=“&x&y=&yEndSubPrivateSubButton1_Click()Dima%,b%a=10:b=20:Swap1a,b传值传值l
160、abel2.text&=A1=“&a&B1=“&ba=10:b=20:Swap2a,b传址传址label2.text&=A2=“&a&B2=“&bEndSub201VB.NET程序设计教程程序设计教程本书目录本书目录例例6.7传址与传值传址与传值本章目录本章目录形参获得实参形参获得实参的值的值形参获得实参形参获得实参的地址的地址202VB.NET程序设计教程程序设计教程本书目录本书目录SubSwap3(ByValx%,ByRefy%)t=x:x=y:y=tlabel1.text&=x=&x&y=&yEndSubPrivateSubButton1_Click()a=10:b=20:Swap3a,
161、blabel2.text&=A3=“&a&B3=“&bEndSub203VB.NET程序设计教程程序设计教程本书目录本书目录传址与传值传址与传值 要将被调过程中的结果返回给主调程序,则形要将被调过程中的结果返回给主调程序,则形参必须是传址方式。这时实参必须是同类型的变参必须是传址方式。这时实参必须是同类型的变量名,不能是常量、表达式。量名,不能是常量、表达式。q 不不希希望望过过程程修修改改实实参参的的值值,则则应应选选用用传传值值方方式式,减减少少各各过过程程间间的的关关联联。因因为为在在过过程程体体内内对对形形参的改变不会影响实参。参的改变不会影响实参。q 形参是数组都是地址传递形参是数组
162、都是地址传递本章目录本章目录204VB.NET程序设计教程程序设计教程本书目录本书目录数组参数的传递数组参数的传递当参数是数组,通过传址方式进行传递时:当参数是数组,通过传址方式进行传递时:在实参只写数组名在实参只写数组名在形参中写数组名,但圆括号不能省。在形参中写数组名,但圆括号不能省。被调过程可通过被调过程可通过Ubound函数确定实参数组的上界函数确定实参数组的上界Ubound函数的形式如下:函数的形式如下:Ubound(数组名数组名,维数,维数)其中:维数指明要测试的是第几维的下标值,缺省其中:维数指明要测试的是第几维的下标值,缺省是一维数组。是一维数组。205VB.NET程序设计教程
163、程序设计教程本书目录本书目录例例6.86.8如下如下sumsum子过程求数组子过程求数组a a各元素和、并改变各元素和、并改变数组各元素值:数组各元素值:FunctionFunction sum%( sum%(ByValByVal x() x() AsAs IntegerInteger) ) Dim Dim i% i% sum = 0 sum = 0 For For i = 0 i = 0 ToTo UBound(x) UBound(x) sum += x(i) sum += x(i):x(i) = 2 * x(i)x(i) = 2 * x(i) Next Next i iEndEnd Fun
164、ctionFunction6.3.3 数组参数的传递数组参数的传递 本章目录本章目录206VB.NET程序设计教程程序设计教程本书目录本书目录v形参是数组形参是数组要以数组名加圆括号表示,不要要以数组名加圆括号表示,不要给出维数上界;多维数组,每维以逗号分隔。在给出维数上界;多维数组,每维以逗号分隔。在过程中通过过程中通过Ubound函数确定每维的上界。函数确定每维的上界。v实参是数组实参是数组要给出数组名要给出数组名(不需要圆括号不需要圆括号)。v当数组作为参数传递时,系统将实参数组的起当数组作为参数传递时,系统将实参数组的起始地址传给过程,使形参数组也具有与实参数组始地址传给过程,使形参数
165、组也具有与实参数组相同的起始地址。相同的起始地址。数组参数的传递数组参数的传递 13579形参数组形参数组实参数组实参数组本章目录本章目录207VB.NET程序设计教程程序设计教程本书目录本书目录6.3.4 变量的作用域变量的作用域 v块块变变量量在在控控制制结结构构块块中中声声明明的的变变量量,只只能能在在本块内有效本块内有效v过过程程级级变变量量在在一一个个过过程程内内用用Dim或或Static语语句句声明的变量,只能在本过程中使用声明的变量,只能在本过程中使用v模模块块级级变变量量在在模模块块内内、任任何何过过程程外外用用Dim、Private语语句句声声明明的的变变量量,可可被被本本模
166、模块块的的任任何何过过程程访问访问v全全局局变变量量在在模模块块级级用用Public语语句句声声明明的的变变量量,可被应用程序的任何过程或函数访问可被应用程序的任何过程或函数访问本章目录本章目录208VB.NET程序设计教程程序设计教程本书目录本书目录变量的作用域变量的作用域 PublicPaAsinteger全局变量全局变量PrivateMbAsstring*10窗体窗体/模块级变量模块级变量SubF1()DimFaAsinteger过程级变量过程级变量EndSubSubF2()DimFbAsSingle过程级变量过程级变量Fori=1to10Dimk%块变量块变量NextiEndSub本章
167、目录本章目录209VB.NET程序设计教程程序设计教程本书目录本书目录SubButton1_Click()HandlesButton1.ClickDimi%,isum%Fori=1To5isum=sum(i)TextBox1.Text&=isum=&isum&vbCrLfNextiEndSubFunctionsum(ByValnAsInteger)StaticjAsIntegerj=j+nsum=jEndFunction6.3.5 静态变量静态变量 静态变量静态变量程序运行过程中可程序运行过程中可保留变量的值保留变量的值声明形式:声明形式:Static 变量名变量名AS类型类型用用Dim声明的
168、变量,每次调用过程时重新初始化声明的变量,每次调用过程时重新初始化例例6.10比较比较Dim和和Static两者的区别。两者的区别。本章目录本章目录210VB.NET程序设计教程程序设计教程本书目录本书目录递归过程在自身定义的内部调用自己。递归过程在自身定义的内部调用自己。例例6.12编编fac(n)=n! 的递归函数的递归函数Functionfac(nAsInteger)AsIntegerIfn=1Thenfac=1Elsefac=n*fac(n-1)EndIfEndFunction6.4 递归递归用自身的结构来描述自用自身的结构来描述自身就称为递归。身就称为递归。最典型的例子是阶乘运最典型
169、的例子是阶乘运算算, ,作如下的定义:作如下的定义:本章目录本章目录211VB.NET程序设计教程程序设计教程本书目录本书目录递推递推回归回归递推过程:每调用自身,当前参数压栈,直到达到递归结束条件。递推过程:每调用自身,当前参数压栈,直到达到递归结束条件。回归过程:不断从栈中弹出当前的参数,直到栈空。回归过程:不断从栈中弹出当前的参数,直到栈空。递归算法设计简单,但消耗的机时和占据的内存空间比非递归大递归算法设计简单,但消耗的机时和占据的内存空间比非递归大由此可见构成递归的结构如下:由此可见构成递归的结构如下:递归结束条件及结束时的值;递归结束条件及结束时的值;能用递归形式表示,并且递归向终
170、止条件发展。能用递归形式表示,并且递归向终止条件发展。fac(2)=2*fac(1)fac(1)=1fac(4)=4*6fac(3)=3*2fac(2)=2*1fac(3)=3*fac(2)fac(4)=4*fac(3)本章目录本章目录递归结构递归结构212VB.NET程序设计教程程序设计教程本书目录本书目录6.5 综合应用综合应用 6.5.1数制转换数制转换不同进制数之间的转换,可通过编程来实现;也可通过不同进制数之间的转换,可通过编程来实现;也可通过VB.NET提供的内部函数:十进制转换为八进制函数提供的内部函数:十进制转换为八进制函数(Oct)、转换为十六进制函数()、转换为十六进制函数
171、(Hex)来实现。)来实现。例例6.136.13编一函数,实现一个十进制整数转换成二至十六编一函数,实现一个十进制整数转换成二至十六任意进制的字符。任意进制的字符。一个十进制正整数一个十进制正整数m转换成转换成r进制数的思路进制数的思路:将将m不断除不断除r取余数取余数(若余数超过若余数超过9,还要进行相应的转,还要进行相应的转换,例如换,例如10变成变成A,11变成变成B等等),直到商为零,直到商为零,以反序得到结果,即最后得到的余数在最高位。以反序得到结果,即最后得到的余数在最高位。本章目录本章目录演示演示213VB.NET程序设计教程程序设计教程本书目录本书目录综合应用综合应用-加密加密
172、2.加密和解密加密和解密信息加密是信息安全性的措施之一。信息加密有信息加密是信息安全性的措施之一。信息加密有各种方法,最简单的加密方法是将每个字母平移各种方法,最简单的加密方法是将每个字母平移一个位置一个位置(称为密钥称为密钥)。例如,后移。例如,后移5个位置,这个位置,这时,时,AF,BGYD,ZE,af;解;解密是加密的逆操作。密是加密的逆操作。例例6.14 6.14 编一加密和解密的程序,即将输入的一编一加密和解密的程序,即将输入的一行字符串中的所有字母加密,加密后还可再进行行字符串中的所有字母加密,加密后还可再进行解密。解密。本章目录本章目录代码说明代码说明214VB.NET程序设计教
173、程程序设计教程本书目录本书目录WelcomestudWC86IAsc=Asc(C)91+5IAsc90IAsc=IAsc-2691215VB.NET程序设计教程程序设计教程本书目录本书目录综合应用综合应用-查找查找3.查找查找利用计算机快速运算的特点,可方便地实现查找。利用计算机快速运算的特点,可方便地实现查找。查找是在线性表查找是在线性表(在此为数组在此为数组)中,根据指定的关中,根据指定的关键值,找出与其值相同的元素。一般有顺序查找键值,找出与其值相同的元素。一般有顺序查找和二分法查找。顺序查找根据查找的关键值与数和二分法查找。顺序查找根据查找的关键值与数组的元素逐一比较,若相同,查找成功
174、,若找不组的元素逐一比较,若相同,查找成功,若找不到,则查找失败。到,则查找失败。例例6.15实现顺序查找。实现顺序查找。代码说明代码说明216VB.NET程序设计教程程序设计教程本书目录本书目录综合应用综合应用-字符处理字符处理4.字符处理应用字符处理应用例例6.16编写一个英文打字训练的程序,要求如下编写一个英文打字训练的程序,要求如下(1)在标签框内随机产生在标签框内随机产生30个字母的范文;个字母的范文;(2)当当焦焦点点进进入入输输入入文文本本框框时时开开始始计计时时,并并显显示示当当时的时间;时的时间;(3)当当输输入入了了30个个字字母母时时结结束束计计时时,禁禁止止向向文文本本
175、框框输入内容,显示打字的速度和正确率。输入内容,显示打字的速度和正确率。本章目录本章目录代码说明代码说明217VB.NET程序设计教程程序设计教程本书目录本书目录本章小节本章小节结构化程序设计三种结构结构化程序设计三种结构顺序结构顺序结构、选择结构选择结构、循环结构循环结构IfThen语句、语句、Select Case语句、语句、For与与 Do循环语句循环语句 赋值语句与复合赋值语句赋值语句与复合赋值语句数据输出和输入数据输出和输入InputBox、MsgBox常用算法常用算法 素数判定、级数求和、素数判定、级数求和、试凑法、试凑法、迭代法解迭代法解方程方程218VB.NET程序设计教程程序
176、设计教程本书目录本书目录思考题思考题1.为什么是要使用过程?为什么是要使用过程?2.简述子过程和函数过程的异同点?简述子过程和函数过程的异同点?3.什什么么是是形形参参?什什么么是是实实参参?实实参参与与形形参参之之间间怎样传值?怎样传值?4.按变量声明的位置可分为哪几种变量?按变量声明的位置可分为哪几种变量?5.什么是什么是静态变量静态变量?如何如何声明声明静态变量?静态变量?本章目录本章目录219VB.NET程序设计教程程序设计教程本书目录本书目录第七章第七章 用户界面设计用户界面设计 7.1 常用控件常用控件7.2 通用对话框通用对话框7.3 菜单设计菜单设计 7.4 多重窗体多重窗体
177、7.5 鼠标和键盘鼠标和键盘 7.6 综合应用综合应用本章目录本章目录220VB.NET程序设计教程程序设计教程本书目录本书目录用户界面是应用程序的一个重要组成部分,用户界面是应用程序的一个重要组成部分,主要负责用户与应用程序之间的交互。主要负责用户与应用程序之间的交互。 System.Windows.Forms命名空间中的命名空间中的类可以分为两类:类可以分为两类: 用户界面控件用户界面控件 在设计和程序运行时显示在设计和程序运行时显示在窗体上。例如,在窗体上。例如,Label、Button控件控件非用户界面控件非用户界面控件 设计阶段出现在窗体下的设计阶段出现在窗体下的专用面板中,程序运行
178、时是不可见。专用面板中,程序运行时是不可见。例如,例如,Timer、MainMenu控件控件 本章目录本章目录221VB.NET程序设计教程程序设计教程本书目录本书目录7.1 常用控件常用控件7.1.1 单选按钮、复选框和框架单选按钮、复选框和框架1.单选按钮单选按钮(RadioButton) 单选按钮以组的形式出现,允许选择一项。单选按钮以组的形式出现,允许选择一项。重要属性重要属性 Text属性属性 按钮上显示的文本按钮上显示的文本Checked属性属性 表示单选按钮的状态:表示单选按钮的状态: True 被选定被选定 False 未被选定未被选定本章目录本章目录222VB.NET程序设计
179、教程程序设计教程本书目录本书目录7.1.1 单选按钮单选按钮 重要事件重要事件Click事件事件 单击后,使单击后,使Checked属性属性为为TrueCheckedChanged事件事件 当某个单选当某个单选按钮的状态被发生变化,该事件随之被触按钮的状态被发生变化,该事件随之被触发。发。本章目录本章目录223VB.NET程序设计教程程序设计教程本书目录本书目录Checked未选定未选定 False被选定被选定 True并显示一个选中标记。并显示一个选中标记。事件事件ClickCheckedChanged 2.复选框复选框(CheckBox) 例例7.1通过单选通过单选按钮和复选框按钮和复选框
180、选修课程选修课程代码说明代码说明本章目录本章目录224VB.NET程序设计教程程序设计教程本书目录本书目录3.框架框架 (GroupBox) 具有容器功能具有容器功能先建立框架,然后将各控件放置其中。先建立框架,然后将各控件放置其中。重要属性重要属性TextText属性属性 框架上的标题文本框架上的标题文本框架可以响应框架可以响应ClickClick和和DoubleClickDoubleClick事件,事件,但一般不需要编写事件过程。但一般不需要编写事件过程。例例7.2框架用法示例框架用法示例代码说明代码说明本章目录本章目录225VB.NET程序设计教程程序设计教程本书目录本书目录7.1.2
181、列表框和组合框列表框和组合框 列表框(列表框(listboxlistbox)可显示多个选项供用户选)可显示多个选项供用户选择,不能直接修改其中的内容。择,不能直接修改其中的内容。组合框组合框(combobox)组合了文本框和列表框的特组合了文本框和列表框的特性而形成的一种控件。组合框有性而形成的一种控件。组合框有3种式样。种式样。本章目录本章目录226VB.NET程序设计教程程序设计教程本书目录本书目录列表框和组合框重要属性列表框和组合框重要属性(1) ItemsItems是一个集合是一个集合Items中选项的序号是从中选项的序号是从0开始的。开始的。Items属性既可以在设计状态设置,也可以
182、在属性既可以在设计状态设置,也可以在程序中设置或引用。程序中设置或引用。 ListBox1.Items(3)本章目录本章目录227VB.NET程序设计教程程序设计教程本书目录本书目录重要属性重要属性2(2) SelectedIndex表示在程序运行时被选定的项的序号。只能在程表示在程序运行时被选定的项的序号。只能在程序中设置或引用。序中设置或引用。如果未选中任何选项,则如果未选中任何选项,则SelectedIndex为为-1。SelectedIndex=3本章目录本章目录228VB.NET程序设计教程程序设计教程本书目录本书目录重要属性重要属性3(3) Items.Count列表框或组合框中项
183、目数量。最后一项的序号为列表框或组合框中项目数量。最后一项的序号为Items.Count-1该属性只能在程序中设置或引用。该属性只能在程序中设置或引用。(4) Sorted程序运行期间列表框或组合框的选项是否按字母程序运行期间列表框或组合框的选项是否按字母表顺序排序。如果表顺序排序。如果Sorted为为True,则选项按字,则选项按字母表顺序显示母表顺序显示 本章目录本章目录229VB.NET程序设计教程程序设计教程本书目录本书目录重要属性重要属性4(5) Text最后一次被选定的选项的文本内容。该属性只最后一次被选定的选项的文本内容。该属性只能在程序中设置或引用。能在程序中设置或引用。注意:
184、注意:ListBox1.Items(ListBox1.SelectedIndex)ListBox1.Items(ListBox1.SelectedIndex)等等于于ListBox1.TextListBox1.Text。ListBox1.TextListBox1.Items(ListBox1.SelectedIndex)本章目录本章目录230VB.NET程序设计教程程序设计教程本书目录本书目录列表框和组合框常用方法列表框和组合框常用方法(1) Items.Add 对象对象.Items.Add(选项选项)把一个选项加入列表框或组合框把一个选项加入列表框或组合框例如:例如:ListBox1.Ite
185、ms.Add(周海涛周海涛)(2) Items.Remove对象对象. Items.Remove (选项选项)从列表框或组合框中删除指定的项从列表框或组合框中删除指定的项例如:例如:ListBox1.Items.Remove(华成华成)本章目录本章目录231VB.NET程序设计教程程序设计教程本书目录本书目录常用方法常用方法2 (3)Items.RemoveAt对象对象.RemoveAt(Index)从从列列表表框框或或组组合合框框中中删删除除指指定定的的项项。Index表表示示被被删删除除项项目目在在列列表表框框或或组组合合框框中中的的位位置。置。 例如:例如: ListBox1.Remov
186、eAT(4)将删除选项将删除选项“华成华成”本章目录本章目录232VB.NET程序设计教程程序设计教程本书目录本书目录常用方法常用方法3(4) Items.Clear对象对象.Items.Clear用于清除列表框或组合框的所有项目用于清除列表框或组合框的所有项目例如:例如:ListBox1.Items.Clear全部清除全部清除本章目录本章目录233VB.NET程序设计教程程序设计教程本书目录本书目录重要事件重要事件列表框:列表框:Click、DoubleClick组合框:组合框:Click例例7.3编写一个能对列表框进行项目添加、修改编写一个能对列表框进行项目添加、修改和删除的应用程序。和删
187、除的应用程序。 修改列表框,先选定项修改列表框,先选定项将选项显示在文本框中,将选项显示在文本框中,更改文本框中内容后,再更改文本框中内容后,再更新列表框更新列表框 代码说明代码说明本章目录本章目录234VB.NET程序设计教程程序设计教程本书目录本书目录例例例例7.4设计一个应用程序。当计算机和操作系统设计一个应用程序。当计算机和操作系统未被选定时,它们所在框架的其他控件不能使未被选定时,它们所在框架的其他控件不能使用;组合框自身能够添加一个新的选项;在列用;组合框自身能够添加一个新的选项;在列表框中显示用户所选择的配置。表框中显示用户所选择的配置。代码说明代码说明本章目录本章目录235VB
188、.NET程序设计教程程序设计教程本书目录本书目录7.1.3滚动条和进度条滚动条和进度条 滚动条滚动条(ScrollBar)通常附在窗体上协助观察数据通常附在窗体上协助观察数据或确定位置,也可作为数据输入工具。进度条或确定位置,也可作为数据输入工具。进度条(ProgressBar)用来指示事务处理的进度。用来指示事务处理的进度。滚动条有水平和垂直两种滚动条有水平和垂直两种进度条没有水平垂直之分进度条没有水平垂直之分本章目录本章目录236VB.NET程序设计教程程序设计教程本书目录本书目录滚动条属性滚动条属性vValue 滑块当前位置的值滑块当前位置的值( (缺省为缺省为0)0)(Value的范围
189、是从的范围是从Minimum到到Maximum+1-LargeChange)vMinimum 滑块最小位置值滑块最小位置值( (缺省为缺省为0)0)vMaximum 滑块最大位置值滑块最大位置值( (缺省为缺省为100)100)vSmallChange 单击滚动条两端的箭头时,单击滚动条两端的箭头时,ValueValue属性属性( (滑块位置滑块位置) )改变值改变值vLargeChange 单击滚动条的空白区域时,单击滚动条的空白区域时,ValueValue属性改变值属性改变值本章目录本章目录237VB.NET程序设计教程程序设计教程本书目录本书目录滚动条事件滚动条事件Scroll 当拖动滑
190、块时触发当拖动滑块时触发 ValueChanged 改变改变ValueValue属性时触发属性时触发例例7.5计算计算018之间某个数阶乘,数据由滚动条之间某个数阶乘,数据由滚动条获得。获得。Maximum属性为属性为18,Minimum属性为属性为0,Value初始值为初始值为0,SmallChange属性为属性为1,LargeChange属性为属性为3。代码说明代码说明本章目录本章目录238VB.NET程序设计教程程序设计教程本书目录本书目录ProgressBar控件控件 Maximum和和Minimum 设置控件的界限设置控件的界限Value 控件执行阶段被填充的数目,直到等于控件执行阶
191、段被填充的数目,直到等于Maximum属性值。控件显示的填充数是属性值。控件显示的填充数是Value属性与属性与Maximum和和Minimum属性之间的比值属性之间的比值在对在对ProgressBar编程时,必须先确定编程时,必须先确定Value属属性上限。例如,下载文件,可将性上限。例如,下载文件,可将Maximum设置设置为文件长度。在该文件下载过程中,将为文件长度。在该文件下载过程中,将Value属属性设置为文件已经下载的字节数。性设置为文件已经下载的字节数。本章目录本章目录239VB.NET程序设计教程程序设计教程本书目录本书目录例例 例例7.6设计一个调色板应用程序,使用三个滚设计
192、一个调色板应用程序,使用三个滚动条作为三种基本颜色的输入工具,用合成的动条作为三种基本颜色的输入工具,用合成的颜色设置文本框颜色设置文本框BackColor属性。属性。例例7.7用一个进度条来指示一个大数组的计算进用一个进度条来指示一个大数组的计算进度。度。代码说明代码说明代码说明代码说明本章目录本章目录240VB.NET程序设计教程程序设计教程本书目录本书目录7.1.4 定时器定时器 定时器以一定的时间间隔产生定时器以一定的时间间隔产生TickTick事件事件 q属性属性Enabled 为为FalseFalse时定时器不产生时定时器不产生TickTick事件事件Interval 触发触发Ti
193、ckTick事件的时间间隔,单位事件的时间间隔,单位msq事件事件定时器控件只有一个定时器控件只有一个Tick事件事件产生产生Tick事件条件事件条件Enabled=True;Interval0例例7.8设计一个倒计时应用程序设计一个倒计时应用程序例例7.9用一个定时器控制蝴蝶在窗体内的飞舞用一个定时器控制蝴蝶在窗体内的飞舞 代码说明代码说明代码说明代码说明本章目录本章目录241VB.NET程序设计教程程序设计教程本书目录本书目录7.1.5超链接超链接(略略)LinkLabel控件可在控件可在Windows窗体上创建超链接窗体上创建超链接重要属性重要属性(1)Text 控件上显示的文本控件上显
194、示的文本(2)LinkArea用于设置控件上文本的超链接用于设置控件上文本的超链接(3)ActiveLinkColorColor结构类型,用来设置结构类型,用来设置超链接的颜色超链接的颜色(4)VisitedLinkColorColor结构类型,用来设结构类型,用来设置访问过超链接的颜色置访问过超链接的颜色本章目录本章目录242VB.NET程序设计教程程序设计教程本书目录本书目录LinkLabel控件事件控件事件(略略)LinkClicked 鼠标单击鼠标单击发生发生LinkClicked事件事件使用使用System.Diagnostics.Process.Start方法方法打开指定的链接对象
195、打开指定的链接对象例例7.10访问教育部主页访问教育部主页System.Diagnostics.Process.Start(http:/)本章目录本章目录243VB.NET程序设计教程程序设计教程本书目录本书目录7.2 通用对话框通用对话框 .NET提供了一组基于提供了一组基于Windows的标准对话框界的标准对话框界面。利用通用对话框控件可在窗体上创建打开文面。利用通用对话框控件可在窗体上创建打开文件、保存文件、颜色、字体、打印、打印预览等件、保存文件、颜色、字体、打印、打印预览等对话框。对话框。通用对话框仅用于应用程序与用户通用对话框仅用于应用程序与用户之间进行信息交互,是输入输出的之间进
196、行信息交互,是输入输出的界面,界面,不能真正实现文件打开、文不能真正实现文件打开、文件存储、设置颜色、字体设置、打件存储、设置颜色、字体设置、打印等操作,如果想要实现这些功能印等操作,如果想要实现这些功能则需要编程实现则需要编程实现。本章目录本章目录244VB.NET程序设计教程程序设计教程本书目录本书目录7.2.1打开文件对话框打开文件对话框由由 OpenFileDialog 控件来实现控件来实现 重要属性重要属性:(1)FileName 文件名称,包含路径文件名称,包含路径(2) Filter 确定所显示文件的类型确定所显示文件的类型例如:例如:TextFiles|*.txt|所有文件所有
197、文件|*.*显示文本显示文本文件和所有文件文件和所有文件(3) FilterIndex 决定文件列表框中显示第几组决定文件列表框中显示第几组类型的文件类型的文件(4)InitialDirectory 初始化路径初始化路径本章目录本章目录245VB.NET程序设计教程程序设计教程本书目录本书目录打开文件对话框打开文件对话框FilterFileNameInitialDirectoryFilterIndex本章目录本章目录246VB.NET程序设计教程程序设计教程本书目录本书目录打开文件对话框打开文件对话框例例7.11编写一个应用程序,弹出打开文件对话框,编写一个应用程序,弹出打开文件对话框,从中选
198、择一个从中选择一个BMP位图文件,能在图形框中显位图文件,能在图形框中显示该图片。示该图片。例例7.12编写一个简单的文本文件编辑程序编写一个简单的文本文件编辑程序代码说明代码说明代码说明代码说明本章目录本章目录247VB.NET程序设计教程程序设计教程本书目录本书目录7.2.2 保存文件对话框保存文件对话框 由由SaveFileDialog控件来实现控件来实现SaveFileDialog控件的属性与控件的属性与OpenFileDialog控件基本相同,特有的属性是控件基本相同,特有的属性是DefaultExt属性,属性,用于设置缺省的扩展名用于设置缺省的扩展名。例例7.13为例为例7.12中
199、的另存为命令按钮编写事件中的另存为命令按钮编写事件过程,把文本框内的信息存盘。过程,把文本框内的信息存盘。本章目录本章目录248VB.NET程序设计教程程序设计教程本书目录本书目录7.2.3 颜色对话框颜色对话框 由由ColorDialog控件来实现控件来实现重要属性重要属性Color,它返回或设置选定的颜色,属,它返回或设置选定的颜色,属于于Color结构类型。结构类型。例例7.14为例为例7.12中的颜色命令按钮编写事件过中的颜色命令按钮编写事件过程,设置文本框的前景色。程,设置文本框的前景色。SubButton3_Click()HandlesButton3.ClickColorDialo
200、g1.ShowDialog()打开颜色对话框打开颜色对话框TextBox1.ForeColor=ColorDialog1.ColorEndSub设置文件框前景颜色设置文件框前景颜色本章目录本章目录249VB.NET程序设计教程程序设计教程本书目录本书目录7.2.4 字体对话框字体对话框 通过通过FontDialog控件来实现控件来实现例例7.14为例为例7.12中的字体按钮编写设置文本框字体的事件过程。中的字体按钮编写设置文本框字体的事件过程。SubButton4_Click()HandlesButton4.ClickFontDialog1.ShowDialog() 打开字体对话框打开字体对话
201、框TextBox1.Font = FontDialog1.Font 设置字体设置字体EndSubFont获取选择的字体获取选择的字体Color选定的颜色选定的颜色ShowColor控制是控制是否有否有“颜色颜色”选项选项本章目录本章目录250VB.NET程序设计教程程序设计教程本书目录本书目录7.3 菜单设计菜单设计7.3.1菜单设计概述菜单设计概述菜单有下拉式菜单和弹出菜单菜单有下拉式菜单和弹出菜单(上下文菜单上下文菜单)。下。下拉式菜单的组成结构:拉式菜单的组成结构:快捷键快捷键热键热键子菜单标记子菜单标记主菜单主菜单菜单项菜单项子菜单名子菜单名分隔线分隔线本章目录本章目录251VB.NE
202、T程序设计教程程序设计教程本书目录本书目录7.3.1 菜单设计概述菜单设计概述.NET提供了提供了MainMenu和和ContextMext两个两个控件,分别用来设计下拉式菜单和弹出式菜单。控件,分别用来设计下拉式菜单和弹出式菜单。从这里开始设从这里开始设计下拉式菜单计下拉式菜单从这里开始设从这里开始设计计弹出菜单弹出菜单本章目录本章目录252VB.NET程序设计教程程序设计教程本书目录本书目录菜单设计概述菜单设计概述菜单项除了菜单项除了NameName、VisibleVisible、EnabledEnabled等属性之外,等属性之外,还具有下列重要属性:还具有下列重要属性:(1) (1) T
203、ext菜单项上显示的标题文本菜单项上显示的标题文本在字符前加一个在字符前加一个&符号构成热键。例如,输入符号构成热键。例如,输入“新建新建(&N)”,则,则菜单菜单显示显示“新建新建(N)”,N N为热键。为热键。菜单项的分隔符,输入一个减号菜单项的分隔符,输入一个减号“-”。(2) (2) ShortCut 设置菜单项的快捷键。设置菜单项的快捷键。(3) (3) Checked 控制菜单项左边是否显示控制菜单项左边是否显示“”菜单项的事件菜单项的事件Click 为菜单项编写程序为菜单项编写程序 本章目录本章目录253VB.NET程序设计教程程序设计教程本书目录本书目录7.3.2创建主菜单创建
204、主菜单 例例7.16菜单示例。菜单示例。下拉式菜单的建立过程:下拉式菜单的建立过程:1)建立控件建立控件在窗体上放置一个在窗体上放置一个MainMenu控件控件2)设计菜单设计菜单3)设置菜单项的属性设置菜单项的属性4)编写菜单项的事件过程编写菜单项的事件过程本章目录本章目录254VB.NET程序设计教程程序设计教程本书目录本书目录7.3.3创建弹出菜单创建弹出菜单 弹弹出出菜菜单单独独立立于于窗窗体体菜菜单单栏栏而而显显示示在在窗窗体体内内的的浮浮动动菜菜单单。显显示示位位置置取取决决于于单单击击鼠鼠标标右右键键时时指指针针的位置。的位置。弹弹出出菜菜单单使使用用ContextMenu控控件
205、件来来设设计计,方方法与下拉式菜单相同。法与下拉式菜单相同。用用鼠鼠标标单单击击某某对对象象时时能能弹弹出出菜菜单单,必必须须设设置置该该对对象的象的ContextMenu属性属性=ContextMenu控件名控件名 例例7.17 7.17 为文本框配置弹出菜单为文本框配置弹出菜单本章目录本章目录255VB.NET程序设计教程程序设计教程本书目录本书目录7.4 多重窗体多重窗体 多多重重窗窗体体是是指指一一个个应应用用程程序序中中有有多多个个并并列列的的普普通通窗窗体体,每每个个窗窗体体可可以以有有自自己己的的界界面面和和程程序序代代码码,完成不同的功能。完成不同的功能。7.4.1添加窗体添加
206、窗体选选择择“项项目目添添加加Windows窗窗体体”命命令令,在在弹弹出出的的对对话话框框中中需需要要选选定定“Windows窗窗体体”并并且且确确定定新窗体文件的名称新窗体文件的名称。注意:一个项目中不能有相同名称的窗体注意:一个项目中不能有相同名称的窗体 本章目录本章目录256VB.NET程序设计教程程序设计教程本书目录本书目录7.4.2设置启动窗体设置启动窗体 在缺省情况下,系统默认在缺省情况下,系统默认Form1Form1为启动窗体。为启动窗体。若若要要指指定定其其他他窗窗体体为为开开始始窗窗体体,应应使使用用“项项目目”菜单中菜单中“属性属性”命令命令本章目录本章目录257VB.N
207、ET程序设计教程程序设计教程本书目录本书目录7.4.3窗体的实例化和显示窗体的实例化和显示 在在多多重重窗窗体体程程序序中中,启启动动窗窗体体外外的的其其他他窗窗体体(例例如如Form2)的显示应使用下列语句的显示应使用下列语句Dimfrm2AsNewForm2frm2.Show() 或或frm2.ShowDialog()不能用下列语句显示不能用下列语句显示Form2:Form2.Show()或或Form2.ShowDialog()必必须须通通过过代代码码实实例例化化来来显显示示,这这是是因因为为Form2是是一个类名,不是窗体名称一个类名,不是窗体名称本章目录本章目录258VB.NET程序设
208、计教程程序设计教程本书目录本书目录7.4.4重要方法重要方法 (1)Show 以以非模式方法显示窗体非模式方法显示窗体 窗体对象窗体对象.Show 非模式非模式程序可继续执行程序可继续执行(2)ShowDialog 以以模式方法显示窗体模式方法显示窗体窗体对象窗体对象.ShowDialog模式模式在关闭该窗体后才能对其它窗体进行操作在关闭该窗体后才能对其它窗体进行操作(3)Hide 将窗体暂时隐藏将窗体暂时隐藏(还在内存中还在内存中)窗体对象窗体对象.Hide本章目录本章目录259VB.NET程序设计教程程序设计教程本书目录本书目录7.4.4重要方法重要方法 (4)Close 关闭窗体,释放内
209、存关闭窗体,释放内存 窗体对象窗体对象.Close(5)Me关键字关键字MeMe代表代码所在的窗体代表代码所在的窗体例例如如,假假定定建建立立了了一一个个窗窗体体Form1,则则在在窗窗体体Form1及及其其控控件件的的事事件件过过程程中中使使用用语语句句Me.Hide使使Form1窗窗体体隐隐藏藏,语语句句Me.Close将将关关闭闭该该窗窗体。体。若若在在Form2窗窗体体中中使使用用Me.Close,则则关关闭闭的的是是窗体窗体Form2。本章目录本章目录260VB.NET程序设计教程程序设计教程本书目录本书目录不同窗体数据的存取不同窗体数据的存取两个窗体之间访问两个窗体之间访问(假定假
210、定Form1为启动窗体为启动窗体)(1)Form1可以访问可以访问Form2上的数据上的数据Form1中代码的形式:中代码的形式:Dimfrm2AsNewForm2TextBox1.Text=frm2.Textbox1.text而不能采用而不能采用TextBox1.Text=Form2.Textbox1.text注意:在注意:在Form2Form2不能访问启动窗体不能访问启动窗体Form1Form1(2)通过模块定义公共变量实现相互访问通过模块定义公共变量实现相互访问本章目录本章目录261VB.NET程序设计教程程序设计教程本书目录本书目录不同窗体数据的存不同窗体数据的存取取例例7.18多重窗
211、体应用示例。输入学生五门课程多重窗体应用示例。输入学生五门课程的成绩,计算总分及平均分并在不同窗体内显示。的成绩,计算总分及平均分并在不同窗体内显示。不能访问不能访问模块:模块:Module Module1Public x As StringEnd Module本章目录本章目录262VB.NET程序设计教程程序设计教程本书目录本书目录7.5 鼠标和键盘鼠标和键盘 7.5.1 鼠标鼠标鼠标事件鼠标事件 需要注意事件发生在哪一个对象上需要注意事件发生在哪一个对象上Click、DoubleClick事件事件MouseDown 按下任意一个鼠标按钮时被触发按下任意一个鼠标按钮时被触发MouseUp 释
212、放任意一个鼠标按钮时被触发释放任意一个鼠标按钮时被触发MouseMove 移动鼠标时被触发移动鼠标时被触发本章目录本章目录263VB.NET程序设计教程程序设计教程本书目录本书目录鼠标鼠标 鼠标事件过程中的参数鼠标事件过程中的参数e决定鼠标的当前状态。决定鼠标的当前状态。e.Xe.X、e.Ye.Y表示当前鼠标的位置;表示当前鼠标的位置;e.Button指示按指示按下或释放了哪个鼠标按钮,其值的意义如下表:下或释放了哪个鼠标按钮,其值的意义如下表: 枚举常量枚举常量含含义义MouseButtons.Left按下或释放了鼠标左键按下或释放了鼠标左键MouseButtons.Right按下或释放了鼠
213、标右键按下或释放了鼠标右键MouseButtons.Middle按下或释放了鼠标中键按下或释放了鼠标中键MouseButtons.None没有按下鼠标按钮没有按下鼠标按钮本章目录本章目录264VB.NET程序设计教程程序设计教程本书目录本书目录鼠标鼠标 例例7.19显示鼠标器指针所指的位置。显示鼠标器指针所指的位置。例例7.20设计一个最简单的鼠标按键和移动程序。设计一个最简单的鼠标按键和移动程序。本章目录本章目录265VB.NET程序设计教程程序设计教程本书目录本书目录7.5.2 键盘键盘 1.KeyPress事件事件只对会产生只对会产生ACSII码的按键有响应码的按键有响应,参数,参数e包
214、含包含了与了与KeyPress事件相关的数据。事件相关的数据。e.KeyChar其值为所按键相应的其值为所按键相应的ASCII码值。码值。例如,键盘输入小写例如,键盘输入小写a,e.KeyChar的值为的值为“a”。e.Handled表示本次按键是否被处理过。若它表示本次按键是否被处理过。若它为真,则表示已经被处理过,否则,将传送给为真,则表示已经被处理过,否则,将传送给Windows进行常规处理。设置进行常规处理。设置e.Handled为真,为真,即可怱略本次按键。利用这个特性可以在某些控即可怱略本次按键。利用这个特性可以在某些控件中过滤掉不允许的字符。件中过滤掉不允许的字符。本章目录本章目
215、录266VB.NET程序设计教程程序设计教程本书目录本书目录键盘键盘 2.KeyDown事件和事件和KeyUp事件事件当焦点在某个对象时,用户按下键盘上的任一键,当焦点在某个对象时,用户按下键盘上的任一键,便会引发该对象便会引发该对象KeyDown事件,释放按键便触事件,释放按键便触发发KeyUp事件。事件。参数参数e包含了所按键信息包含了所按键信息(及及Shift、Ctrl、Alt键键的状态的状态)。e.KeyCode的值为的值为操作的物理键。操作的物理键。例例7.217.21编写一个程序应用三类键盘事件,按下编写一个程序应用三类键盘事件,按下Alt+F5Alt+F5组合键可终止程序的运行组
216、合键可终止程序的运行本章目录本章目录267VB.NET程序设计教程程序设计教程本书目录本书目录综合应用综合应用例例7.23 7.23 利用时钟和图像控件,模拟自动红绿灯利用时钟和图像控件,模拟自动红绿灯 分析:改变时钟的分析:改变时钟的Interval属性来延迟不同颜色属性来延迟不同颜色的灯。例如,红灯延迟的灯。例如,红灯延迟2秒,则在切换到红灯后秒,则在切换到红灯后把把Interval设置为设置为2000,这样过,这样过2秒后发生秒后发生Timer事件再切换到其它颜色的灯。事件再切换到其它颜色的灯。用变量用变量i控制红绿灯的自动切换,它的值在控制红绿灯的自动切换,它的值在0 2之间循环变化:
217、之间循环变化:i为为0时显示红灯;时显示红灯;i为为1时显示黄时显示黄灯;灯;i为为2时显示绿灯。时显示绿灯。本章目录本章目录268VB.NET程序设计教程程序设计教程本书目录本书目录综合应用综合应用例例7.24 7.24 锤子追心锤子追心本章目录本章目录269VB.NET程序设计教程程序设计教程本书目录本书目录本章小节本章小节常用控件常用控件单选按钮、复选框、框架、列表框、组合框单选按钮、复选框、框架、列表框、组合框、滚滚动条、进度条动条、进度条、定时器、定时器、超链接超链接通用对话框通用对话框菜单菜单下拉式菜单下拉式菜单MainMenu弹出式菜单弹出式菜单ContextMext两个窗体之间
218、访问两个窗体之间访问通过通过窗体对象实例窗体对象实例.控件控件或或模块级公共变量模块级公共变量270VB.NET程序设计教程程序设计教程本书目录本书目录思考题思考题1.有哪几种方法可以在列表框添加选项?有哪几种方法可以在列表框添加选项?2如如果果要要一一个个定定时时器器每每半半分分钟钟产产生生一一个个Tick控控件件,则则InterVal属性应设置为多少?属性应设置为多少?3 3在在VB.NET中,使用什么方法访问网页?中,使用什么方法访问网页?4 4代代码码中中如如何何判判断断用用户户在在通通用用对对话话框框中中选选择择了了“取取消消”按钮?按钮?5创创建建弹弹出出菜菜单单需需要要什什么么控
219、控件件?通通过过什什么么属属性性才才能能将将控件与弹出菜单建立关联?控件与弹出菜单建立关联?6 6什么是模式对话框?什么是非模式对话框?什么是模式对话框?什么是非模式对话框?7 7简述窗体之间数据互访如何才能实现?简述窗体之间数据互访如何才能实现?本章目录本章目录271VB.NET程序设计教程程序设计教程本书目录本书目录第十章数据库程序设计VB.NET程序设计教程程序设计教程本书目录本书目录一、数据库基础知识(1)数据库数据库(数据库(Database,DB)是)是长期长期储存在计储存在计算机内的、有算机内的、有组织组织的、可的、可共享共享的数据集合。的数据集合。数据库中的数据按一定的数据库中
220、的数据按一定的数据模型数据模型组织、存组织、存储和描述,由储和描述,由DBMS统一管理,供多用户共统一管理,供多用户共享。享。273VB.NET程序设计教程程序设计教程本书目录本书目录一、数据库基础知识(2)数据库管理系统数据库管理系统(DBMS)数据库管理系统(数据库管理系统(DatabaseManagementSystem,DBMS)由数据库和一组用于访)由数据库和一组用于访问数据库中数据的程序组成。问数据库中数据的程序组成。DBMS有效地管理数据库,为用户提供一个有效地管理数据库,为用户提供一个方便、有效地存取数据库数据的软件环境。方便、有效地存取数据库数据的软件环境。274VB.NET
221、程序设计教程程序设计教程本书目录本书目录一、数据库基础知识(3)常用常用DBMS简介简介MicrosoftAccess功能强大、简单易用功能强大、简单易用面向桌面的数据库面向桌面的数据库完全的个人数据库完全的个人数据库用于开发小型的数据库管理的用于开发小型的数据库管理的Windows应用程应用程序序SQLServer功能完备的正规功能完备的正规DBMS比较简单易学比较简单易学用于中、小企业局域网中的数据库管理用于中、小企业局域网中的数据库管理275VB.NET程序设计教程程序设计教程本书目录本书目录一、数据库基础知识(4)access对象access数据库文件的扩展名是.mdb,它包含表、查询
222、、表单、报表、网页、宏和模块等数据库对象。我们使用这些对象处理和显示数据。后面我们学习编写VB2008的应用程序来处理和显示数据。我们主要针对表和查询这两个数据库对象。276VB.NET程序设计教程程序设计教程本书目录本书目录一、数据库基础知识(5)表表包含大量的数据,有一列或多列和一行或多行数据组成。Access中列为字段,行为记录。表中每一个字段表示表中数据的一个属性。例1:在Access数据库中创建个人通讯录库中的表address_book.mdb,表中包含姓名、出生日期、工作单位、家庭电话、移动电话、QQ、E-mail等字段,并在表中输入若干内容。277VB.NET程序设计教程程序设计
223、教程本书目录本书目录一、数据库基础知识(5)表278VB.NET程序设计教程程序设计教程本书目录本书目录一、数据库基础知识(6)查询数据库中的查询是一组SQL语句,它能对表中的数据进行检索和更新。access中的查询对象是SQLSever中两类对象的组合:视图和存储过程。使用数据库查询对象是的编程更简单。279VB.NET程序设计教程程序设计教程本书目录本书目录二、SQL中的selectSELECTselect_listINTOnew_tableFROMtable_sourceWHEREsearch_conditionGROUPBYgroup_by_expressionHAVINGsearch
224、_conditionORDERBYorder_expressionASC|DESC280VB.NET程序设计教程程序设计教程本书目录本书目录二、SQL中的selectSELECT语句使用规范不区分大小写,即SELECT、select相同每条语句以分号结束可以写在多行上281VB.NET程序设计教程程序设计教程本书目录本书目录二、SQL中的selectSelect*from基本情况where班级=”计科0802班”Select*from成绩表where计算机基础=80Selectfirst,last,cityfromempinfowherefirstLIKEEr%;SELECT*FROMuser
225、tableORDERBYagedesc,useridASCSELECTusername,citytable.cityidFROMusertable,citytableWHEREusertable.cityid=citytable.cityid282VB.NET程序设计教程程序设计教程本书目录本书目录三、在access中用查询(学习SQL)例2:在address_book中编写SQL语句查询姓名为“张兰”的记录。在address_book中编写SQL语句查询工作单位为“生海集团”的记录。283VB.NET程序设计教程程序设计教程本书目录本书目录四、数据库访问组件DataGridView组件它是一
226、个容器,使用它可以绑定数据源中的数据并将数据以类似表格的形式显示出来。例3:使用ADO.NET2.0数据对象的向导模式,建立浏览通讯录模块。建立DataGridView控件,显示address_book数据库中“address”表内容,从而实现浏览通讯录模块功能。284VB.NET程序设计教程程序设计教程本书目录本书目录五、数据绑定1数据绑定数据绑定是指将数据库中的数据集与某控件关联起来,控件中显示的数据即是数据库中的数据集中的数据。数据绑定分为两种:简单数据绑定和复杂数据绑定。2简单数据绑定简单数据绑定就是将控件绑定到单个数据字段,如例10-5中的文本框和按钮控件。简单数据绑定的方法如下。声明绑定dimmybindasBindingMangerBase设置绑定对象mybind=me.BindingContext(数据集对象,表名)绑定到某个控件textbox1.DataBindings.Add(NewBinding(类型,数据集对象,表中字段)285VB.NET程序设计教程程序设计教程本书目录本书目录数据绑定例例10-5设计录入/修改程序,为数据库address_book.mdb中表address增加、修改、删除个人资料数据记录。286VB.NET程序设计教程程序设计教程本书目录本书目录六、A(http:/