




已阅读5页,还剩206页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VisualBasic NET程序设计 上 VisualBasic NET程序设计 第1章VisualBasic NET程序开发环境 内容提要 概述启动和退出VisualBasic NET标题栏 菜单栏和工具栏windows窗体设计器 解决方案管理器窗口 资源管理器与属性窗口窗口管理 2000年 Microsoft公司推出了一个全新的概念 即 NET 为了实现 NET技术 Microsoft公司开发了一整套工具组件 这些组件被集成到VisualStudio NET中 而VisualBasic NET就是它的一个组成部分 也就是说 VisualBasic NET与VisualC NET VisualC 等开发工具使用的是同一个开发环境 这个开发环境就是VisualStudio NET 在这一章中 我们将介绍VisualStudio NET环境中与VisualBasic NET有关的部分 1 1概述 VisualBasic NET是在VisualBasic6 0的基础上产生的 应当说 它仍然是VisualBasic语言 与VisualBasic有着相同的基本语法 关键字和编程方式 但是 VisualBasic NET具有大量的新特性 增加了一些新的关键字 语法和数据类型 同时废弃了一些关键字 这些变化不但大大增强了VisualBasic的性能 而且使用起来更方便 确切地说 应当把VisualBasic NET看作是与VisualBasic6 0语法相似的一门新语言 而不是简单的 升级 1 1 1VisualBasic NET的新特点 统一的集成开发环境 IntegratedDevelopmentEnvironment 即IDE 真正的面向对象 引入了很多新的和改进的性能 包括继承 接口和重载等丰富的数据类型改进了的窗体引擎结构化的错误处理方便的Web开发新一代的数据访问多线程的直接支持 1 1 2从VB6 0到VB NET 升级到VB NET后 用以前版本的VisualBasic编写的程序不能直接在VisualBasic NET中打开 当然也不可能运行 功能的变化 为了提供全部 NET功能 VisualBasic NET需要重新构建关键字和语法关键字的变化 废弃了原有的一些关键字 有些关键字的功能仍然保留 但用新的关键字或命名空间 NameSpace 取代 1 2启动和退出VisualBasic NET 第一种方法 使用 开始 菜单中的 程序 命令第二种方法 使用 资源管理器 第三种方法 使用 开始 菜单中的 运行 命令第四种方法 建立启动VisualStudio NET的快捷方式 打开项目 对话框和 新建项目 对话框 解决方案 Solution VisualBasic NET集成开发环境 退出VisualBasic NET 为了退出VisualBasic NET 可以执行 文件 菜单中的 退出 命令 或按Alt Q键 如果当前程序已修改过而且没有存盘 系统将显示一个对话框 询问用户是否将其存盘 此时如果单击 是 按钮则存盘 如果单击 否 按钮则不存盘 在上述两种情况下都将退出VisualBasic NET 回到Windows环境 1 3标题栏 菜单栏和工具栏 标题栏是屏幕顶部的水平条 它显示的是应用程序的名字 用户与标题栏之间的交互关系由Windows来处理 而不是由应用程序处理 在标题栏的下面是集成环境的主菜单 菜单栏中的菜单命令提供了开发 调试和保存应用程序所需要的工具 工具栏 VisualBasic NET提供了多种工具栏 并可根据需要定义用户自己的工具栏 在一般情况下 集成环境中只显示标准工具栏和文本编辑器工具栏 其他工具栏可以通过 视图 菜单中的 工具栏 命令打开 或关闭 1 4窗体设计器 解决方案管理器窗口 资源管理器与属性窗口 Windows窗体设计器窗口 简称窗体 Form 是应用程序最终面向用户的窗口 它对应于应用程序的运行结果 各种图形 图像 数据等都是通过窗体或窗体中的控件显示出来的 在设计应用程序时 窗体就像是一块画布 在这块画布上可以画出组成应用程序的各个构件 程序员根据程序界面的要求 从工具箱中选择所需要的工具 并在窗体中画出来 这样就完成了应用程序设计的第一步 窗体设计器 建立一个新的项目后 自动建立一个窗体 其默认名称和标题为Form1 窗体中布满小点的部分 见图1 11 称为工作区或操作区 这些小点构成了窗体上的网格 用来对齐控件 在默认情况下 窗体上显示网格 其大小为8 8 所画的控件与网格对齐 如果不想显示网格 或者想改变网格的大小 或者不想让控件与网格对齐 可按如下步骤操作 1 执行 工具 菜单中的 选项 命令 打开 选项 对话框 2 在对话框左部的窗格中选择 Windows窗体设计器 3 在对话框的右部窗格中修改网格的大小 是否显示网格以及是否对齐网格线 4 单击 确定 按钮 修改默认选项 解决方案资源管理器窗口 在默认情况下 主窗口右侧显示的是解决方案资源管理器窗口 解决方案 中可以含有用不同语言开发的项目 1 解决方案文件 其扩展名为 sln solution 相当于VisualBasic6 0中的工程组 vbp 文件 2 项目文件 其扩展名为 vbproj 每个项目对应一个项目文件 3 代码模块文件 其扩展名为 vb 在VisualBasic NET中 所有包含代码的源文件都以 vb作为扩展名 解决方案资源管理器窗口中的工具栏 1 查看代码 打开代码编辑器 对代码进行编辑 2 视图设计器 打开窗体设计器 设计用户界面 3 刷新 刷新项目的活动视图中被选条目的状态 4 显示所有文件 显示当前解决方案中的所有文件夹和文件 包括隐藏文件 5 属性 显示当前所选择的条目的属性 属性窗口和工具箱窗口 属性窗口 每个对象都可以用一组属性来刻画其特征 而属性窗口就是用来设置对象 例如窗体或窗体中控件 属性的 工具箱窗口 这些图标是VisualBasic NET应用程序的构件 称为图形对象或控件 Control 每个控件由工具箱中的一个图标来表示 1 5窗口管理 在集成开发环境中 可以同时打开多个窗口 VisualBasic NET采用了十分有效的窗口管理策略 可以提高浏览效率 有效地利用屏幕空间 这一节将介绍VisualBasic NET先进的窗口管理功能 主窗口 通常把窗体设计器 代码窗口 帮助信息等所占据的窗口称为主窗口 主窗口有两种显示方式 一种是 选项卡式文档 另一种是 MDI环境 在默认情况下 使用的是 选项卡式文档 这两种方式可以通过 选项 对话框来设置 其操作是 执行 工具 菜单中的 选项 命令 打开 选项 对话框 如图1 19所示 在该对话框中选择 环境 项中的 常规 在右侧的 设置 部分选择 选项卡式文档 或 MDI环境 然后单击 确定 按钮即可 注意 所设置的显示方式在下次启动VisualBasic NET集成开发环境时才能起作用 通过 选项 设置主窗口的显示方式 选项卡式文档 方式显示 在默认情况下 主窗口以 选项卡式文档 方式显示 在 选项卡组 中显示的是当前打开的窗口的名字 单击某个选项卡 即可打开相应的窗口 MDI环境 方式显示 如果使用 MDI环境 方式 则主窗口中只显示一个窗口 为了打开其他窗口 必须使用 解决方案资源管理器 其他窗口 除主窗口外 集成开发环境中还有其他一些窗口 这些窗口可以在需要时打开 不需要时关闭或隐藏 其他窗口的显示方式主要有4种 分别为 可停靠 隐藏 浮动 和 自动隐藏 VisualBasic NET程序设计 第2章类 对象与命名空间 内容提要 面向对象和类命名空间对象窗体控件控件的画法和基本操作 VisualBasic NET是真正面向对象的开发工具 全面支持面向对象的程序设计 在这一章中 将介绍面向对象的基本概念和VisualBasic NET中两种基本的对象 即窗体和控件 同时介绍VisualBasic NET中新的核心概念 即命名空间 Namespace 2 1面向对象和类 面向对象不仅仅是一种新的程序设计技术 而且是一种全新的设计和构造软件的思维方法 它使计算机解决问题的方式更加类似于人类的思维方式 更能直接地描述客观世界 从程序设计的角度看 面向对象代表了一种通过模仿人类建立现实世界模型的方法 包括概括 分类 抽象 归纳等 进行软件开发的思想体系 2 1 1面向对象 抽象数据类型封装性消息和方法类和类层次继承性 抽象 程序由相关的一组对象 object 组成 对象之间通过发送 消息 相互通信 从概念上讲 可以把一个实体内的数据及其操作所形成的描述称为一个对象 抽象包括两方面的内容 一是数据抽象 即描述某类对象的公共属性 一是代码抽象 即描述某类对象共有的行为特征 抽象是面向对象程序设计中组织程序的主要原则 一个类型结构设计完善的程序可以减少并局部化类型之间的依赖 从而提高软件的可维护性 封装性 封装 Encapsulation 是一种信息隐藏技术 对象内部对使用者是隐蔽的 使用者只能见到对象封装界面上的信息 封装的目的在于将对象的使用者和对象的设计者分开 使用者不必知道行为实现的细节 只要能用设计者提供的消息来访问该对象即可 消息和方法 消息用来请求对象执行某种操作或回答某些信息的要求 发送消息的对象称为发送者 接收消息的对象称为接收者 可以把全部对象分成各种对象类 每个对象类都定义一组所谓的 方法 实际上可以把它们看作是作用于该类对象上的各种操作 类和类层次 类由方法和数据组成 它是对象性质的描述 包括外部特性和内部实现两个方面 一个类的上层可以有父类 或超类 下层可以有子类 形成一种层次结构 类是一组对象的抽象 它把这些对象所具有的共同特征 包括操作特征和存储特征 集中起来 由这些对象所共享 继承性 继承 Inheritance 是指一个类获取另一个类的性质的过程 在类的层次结构中 一个类可以有多个子类 也可以有多个基类 多态性 多态性 Polymorphism 是指一个名字可以具有多种语义 2 1 2类和对象 类是进行封装和数据隐藏的工具 对象 是系统中的基本运行实体 所有的对象都是作为它们的类的相同副本建立的 一旦它作为个别的对象存在 就可以改变它的属性 为了简单起见 在一般情况下 都不指明对象的类 而是称为 控件 2 2命名空间 命名空间 Namespaces 称得上是Microsoft NET中最重要的概念 所谓命名空间 就是让每一个名称都有自己的活动空间 不会互相混淆 命名空间类似于文件系统中目录与文件的关系 用来控制对象标识符的范围 组织对象库和层次结构 简化对象引用 并可防止在引用对象时出现二义性 有了命名空间 就可以方便地组织应用程序要使用的各个类 NET VisualBasic NET或其他语言的代码都包含在命名空间中 2 2 1什么是命名空间 Microsoft在 NET平台上提供了大量的基础类 这些类构成了 NET的类库 每个命名空间含有可以在程序中使用的类 结构 枚举 接口等 用户可以定义自己的命名空间 并可访问由命名空间提供的资源 应用程序中的所有代码也都在命名空间中 如果没有为代码明确指定命名空间 则系统会根据应用程序的名称 即VisualBasic NET中的项目名 自动生成一个命名空间 2 2 2 NET中的命名空间 NET提供的系统类库极为庞大 含有大量的命名空间 每个命名空间包括不同的类 Class 结构 Structure 和接口 Interface 大多数命名空间的顶层为System 并可根据功能在逻辑上划分为若干个子命名空间 NET命名空间的整体结构 浏览 NET命名空间和类 NET提供了大量的命名空间和类 Microsoft提供了一个名为WinCV exe的工具软件 可用来浏览 NET命名空间的共享程序集类 工具软件WinCV exe位于C ProgramFiles MicrosoftVisualStudio NET FrameworkSDK Bin目录下 2 2 3命名空间的使用 命名空间被集成到 NET环境中 如果不使用命名空间 则无法建立 NET应用程序 而为了在一个应用程序 项目 中使用命名空间 则必须一些方法声明所使用的命名空间 项目引用直接定位使用Imports语句 项目引用 项目引用可以根据需要添加或删除 为了向项目中添加引用 可以使用 项目 菜单中的 添加引用 命令 直接定位 直接定位类似于文件系统中的完整路径 只要给出命名空间的全名 就可以访问其中的任一个类 例如 为了通过控制台输入 输出流 stdio 读写 可以使用System Console命名空间中的WriteLine方法 System Console WriteLine Thisisatest 这种方法适用于应用程序中的所有命名空间 再如 回车换行常量CrLf是在Microsoft VisualBasic ControlChars命名空间中定义的 为了在程序中用该常量实现回车换行操作 可以编写如下代码 DimSAsStringS AAAAAA Microsoft VisualBasic ControlChars CrLf BBBBB MsgBox S 使用Imports语句 可以使用Imports语句 隐含地指定要使用的命名空间 应用程序可以使用由该关键字指定的命名空间中的类 Imports语句通常放在代码模块的顶部 用来指定程序中要使用的命名空间 有了这个语句后 每次使用这个命名空间中的类时 就不必显式地给出该命名空间 从而可以减少键盘输入量 Imports语句的格式如下 Imports aliasname namespace 例如 上面例子中 可以把Microsoft VisualBasic ControlChars命名空间放在Imports语句中 ImportsMicrosoft VisualBasic ControlChars DimSAsStringS AAAAAA CrLf BBBBB MsgBox S Import语句使用注意 注意 如果两个命名空间中有同名的类 而且程序中要引入这两个命名空间 则当使用这个类时 必须显式地指定完整的命名空间名 否则会产生二义性 例如 假定有如下两个命名空间 MyMfgApp InventoryMyMfgApp Sales这两个命名空间中均含有Product类 则下面的代码将产生错误 MyMfgApp InventoryMyMfgApp Sales PublicSubDoSomthing DimobjAsNewProduct 定义Product类的一个对象EndSub在这种情况下 编译器无法确定该引用哪个Product 如果将代码修改为 DimobjAsNewSales Product 则可消除由Product引起的二义性 2 3对象 从前面的介绍可以知道 对象是类的实例 是具有特殊属性 数据 和行为方式 方法 的实体 在用VisualBasic NET进行程序设计时 实际上就是在使用对象或建立对象 2 3 1对象的属性 事件和方法 对象的属性是一个对象的特性 不同的对象有不同的属性 对象常见的属性有标题 Text 名称 Name 颜色 Color 字体大小 Fontsize 是否可见 Visible 等 除了用属性窗口设置对象属性外 也可以在程序中用程序语句设置 一般格式如下 对象名 属性名称 新设置的属性值例如 假定窗体上有一个文本框 TextBox 控件 其名称为Display 它的属性之一是Text 即在文本框中显示指定的内容 如果执行 Display Text Goodmorning 则把字符串 Goodmorning 赋给Display文本框控件的Text属性 在这里 Display是对象名 Text是属性名 而字符串 GoodMorning 是所设置的属性值 再如 Display Visible False表示窗体上有一个文本框控件 名字为Display 其属性Visible为False 程序运行时 该对象不显示 如果赋予值True 则运行时显示该文本框 VisualBasic NET是采用事件驱动编程机制的语言 所谓事件 Event 是由VisualBasic NET预先设置好的 能够被对象识别的动作 响应某个事件后所执行的操作通过一段程序代码来实现 这样的一段程序代码叫做事件过程 EventProcudure 事件过程的一般格式如下 PrivateSub对象名称 事件名称 对象引用 事件信息 Handles事件处理程序 事件响应程序代码 Endsub例如 PrivateSubButton1 Click ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlesButton1 Click EndSub 方法是对象执行的操作 它实际上是在类中定义的过程 其调用格式为 对象名称 方法名称例如 假定有一个名为Form1的窗体 则用Me Hide可以使窗体隐藏 而用Me Show可以使窗体显示 这里的Hide和Show都是窗体类 对象 的方法 2 3 2对象属性设置 对象属性可以通过代码设置 也可通过属性窗口设置 前者称为 在运行期间设置属性 而后者称为 在设计阶段设置属性 可以用三种方法在设计阶段设置对象属性 a 直接键入新属性值 b 选择输入 即通过下拉列表选择所需要的属性值 c 利用对话框设置属值 a 直接键入新属性值 例如 为了把按钮的Text属性设置为 按钮测试 可按如下步骤操作 1 在窗体上画一个按钮 Button1 将在2 6节介绍控件的画法 2 选择该按钮 单击该按钮内部 然后激活属性窗口 3 在属性列表中找到Text属性 并双击该属性条 4 在Text右侧一列上输入 按钮测试 b 选择输入 即通过下拉列表选择所需要的属性值 有些属性 例如Backcolor ControlBox Enabled TopMost等 取值的可能情况是有限的 可能只有两种 几种 十几种或几十种 对于这样的属性 可以在下拉列表中选择所需要的属性值 c 利用对话框设置属值 对于某些属性 设置框的右端会显示省略号 即三个小点 可以利用这个对话框设置所需要的属性 2 4 1窗体的结构与属性 窗体属性决定了窗体的外观和操作AcceptButton 接受按钮 BackColor 背景颜色 CancelButton 取消 按钮 ControlBox 控制框 Enabled 允许 FormBorderStyle 边框类型 Font 字形 ForColor 前景颜色 Icon 图标 Location 定位 MaximizeBox MinimizeBoxName 名称 Size 尺寸 Text 标题 WindowState 窗口状态 2 4 2窗体事件 Click 单击 事件DblClick 双击 事件Load 装入 事件Closed 关闭 事件Activated 活动 Deactivate 非活动 事件Paint 绘画 事件 2 5控件 窗体和控件都是VisualBasic NET中的对象 它们是应用程序的 积木块 共同构成用户界面 因为有了控件 才使得VisualBasic NET不但功能强大 而且易于使用 控件以图标的形式放在 工具箱 中 每种控件都有与之对应的图标 在一般情况下 工具箱位于窗体的左侧 VisualBasic NET提供了大量的控件 这些控件分属于不同的项目类型 在建立新项目时 VisualBasic NET根据所建立的项目类型 自动把相应的控件添加到工具箱中 本书将只讨论Windows应用程序 只涉及Windows窗体控件 这一节对Windows窗体控件作简要介绍 将在第6章介绍部分控件的用法 2 5 1Windows窗体控件 工具箱中列出Windows窗体控件 如图2 19所示 工具箱实际上是一个窗口 称为工具箱窗口 可以通过单击右上角的 关闭 为了打开工具箱 可以执行 视图 菜单中的 工具箱 命令或单击标准工具栏中的 工具箱 按钮 或按Ctrl Alt X键 2 5 2工具箱的管理 控件的复制和删除改变排列顺序定义工具箱 控件的复制和删除 执行弹出式菜单中的 剪切 命令 可以把所选择的控件从工具箱中删除 并复制到剪贴板中 执行 复制 命令 则可把控件复制到剪贴板 而如果执行 删除 命令 则删除该控件 但不复制到剪贴板 改变排列顺序 可以通过弹出式菜单中的 上移 或 下移 命令来实现 每单击一次 上移 或 下移 命令 可以使当前被选择的控件向上或向下移动一个位置 定义工具箱 可以通过 自定义工具箱 命令对工具箱进行定义 执行该命令后 将打开 自定义工具箱 对话框 如图2 22所示 自定义工具箱 对话框包括两个选项卡 分别为 COM组件 和 NET框架组件 2 6控件的画法和基本操作 在设计用户界面时 要在窗体上画出各种所需要的控件 也就是说 除窗体外 建立界面的主要工作就是画控件 这一节将介绍控件的画法和基本操作 2 6 1控件的画法 可以通过多种方法在窗体上画一个控件 第一种方法步骤如下 以画文本框为例 1 单击工具箱中的文本框图标 该图标反相显示 2 把鼠标光标移到窗体上 此时鼠标光标变为 号 号的中心就是控件左上角的位置 并带有相应控件的小图标 3 把 号移到窗体的适当位置 按下鼠标左按钮 不要松开 并向右下方拖动鼠标 窗体上将出现一个方框 4 随着鼠标向右下方移动 所画的方框逐渐增大 当增大到认为合适的大小时 松开鼠标器按钮 这样就在窗体上画出一个文本框控件 2 6 2控件的基本操作 控件的缩放和移动控件的复制和删除通过属性窗口改变对象的位置和大小选择控件 VisualBasic NET程序设计 第3章简单VisualBasic NET程序设计 内容提要 语句编写简单的VisualBasic NET应用程序程序的保存和装入程序的运行 前一章介绍了VisualBaisc NET中对象的概念 讨论了两种最主要的对象 即窗体和控件 这一章将通过一个简单例子说明VisualBasic NET应用程序开发的一般过程 3 1语句3 1 1VisualBasic中的语句 程序是对计算机要执行的一组操作序列的描述 而高级语言源程序的基本组成单位是语句 它是执行具体操作的指令 语句的构成自动语法检查复合语句行续行 语句的构成 VisualBasic中的语句由VisualBasic关键字 对象属性 运算符 函数以及能够生成VisualBasic编辑器可识别指令的符号组成 每个语句以回车键结束 一个语句行的最大长度不能超过1023个字符 在书写语句时 必须遵循一定的规则 这种规则称为语法 自动语法检查 在输入语句的过程中 VisualBasic NET将自动对输入的内容进行语法检查 如果发现了语法错误 则在出错的代码下面显示弯曲的下划线 此时如果把鼠标光标移到下划线上 则在程序行下面用一个方框显示出错的原因在输入语句时 关键字 命令词 函数等 可以不必区分大小写 复合语句行 在一般情况下 输入程序时要求一行一句 一句一行 但VisualBasic NET允许使用复合语句行 即把几个语句放在一行中 各语句之间用冒号 隔开 一个语句行的长度最多不能超过1023个字符 续行 当语句较长时 为了便于阅读程序 可以通过续行符把一个语句分别放在几行中 VisualBasic NET中使用的续行符是下划线 续行符与它前面的字符之间至少要有一个空格 3 1 2赋值 注释 暂停和结束语句 赋值语句可以把指定的值赋给某个变量或某个带有属性的对象 注释语句是为了提高程序的可读性 通常应在程序的适当位置加上必要的注释 暂停语句的作用类似于执行 调试 菜单中的 全部中断 命令 用于保持文件打开 并且不退出VisualBasic NET 结束语句通常用来结束一个程序的执行 多个语句放在同一行中 在这种情况下 各语句之间必须用冒号隔开 例如 a 3 b 4 c 5 赋值语句 其一般格式为 目标操作符 源操作符 例如 Total 99 把数值常量99赋给数值变量Total 是注释符 ReadOut GoodMorning 把字符串常量赋给字符串变量Try1 Val TextBox1 Text 把对象TextBox1的Text属性转换为 数值赋给数值变量TextBox1 Text Str Total 把数值变量Total转换为字符串赋给带有 Text属性的对象TextBox1 Text TextBox2 Text 把带有Text属性的对象TextBox2赋给带有 Text属性的对象TextBox1 注释语句 一般格式为 REM注释内容或 注释内容 例如 ThisisateststantementREM这是一个子程序 暂停语句 Stop 格式 StopStop语句的主要作用是把编译程序置为中断 Break 模式 以便对程序进行检查和调试 程序调试结束后 生成可执行文件之前 应删去代码中的所有Stop语句 结束语句 End 格式 End End语句通常用来结束一个程序的执行 可以把它放在事件过程中 例如 PrivateSubButton1 Click ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlesButton1 ClickEndEndSub该过程用来结束程序 即当单击按钮时 立即结束程序的运行 End语句除用来结束程序外 在不同的环境下还有其他一些用途 包括 EndSub结束一个Sub过程EndFunction结束一个Function过程EndIf结束一个If语句块EndStructure结束结构类型的定义EndSelect结束情况语句EndEnum结束枚举枚举的定义当在程序中执行End语句时 将终止当前程序 重置所有变量 并关闭所有数据文件 3 2编写简单的VB NET应用程序 用传统的面向对象的语言进行程序设计时 主要的工作就是编写程序代码 遵循编程 调试 改错 运行这样一种模式 在用VisualBasic NET开发应用程序时 完全打破了这种模式 使程序的开发大为简化 而且更容易掌握 3 2 1用VisualBasic NET开发应用程序的一般步骤 VisualBasic NET的最大特点 就是以最快的速度和效率开发具有良好用户界面的应用程序 如前所述 VisualBasic NET的可视对象已被抽象为窗体和控件 因而大大简化了程序设计 一般来说 在用VisualBasic NET开发Windows应用程序时 需要以下三步 建立可视用户界面设置可视界面特性编写事件驱动代码 建立用户界面 用户界面由对象 即窗体和控件组成 控件放在窗体上 程序中的所有信息都要通过窗体显示出来 它是应用程序的最终用户界面 在应用程序中要用到哪些控件 就在窗体上建立相应的控件 程序运行后 将在屏幕上显示由窗体和控件组成的用户界面 在VisualBasic NET环境下建立一个新的 Windows应用程序 项目后 屏幕上将显示一个窗体 默认名称为Form1 可以在这个窗体上设置用户界面 如果要建立新的窗体 可以通过 项目 菜单中的 添加Windows窗体 命令来实现 设置窗体和控件的属性 建立界面后 就可以设置窗体和每个控件的属性 在实际的应用程序设计中 建立界面和设置属性可以同时进行 即每画完一个控件 接着就设置该控件的属性 当然 也可以在所有的对象建立完之后再回过头来设置每个对象的属性 究竟用哪种方法 可以根据自己的习惯选定 不必拘泥 可以通过不同的方式设置窗体或控件的属性 编写代码 VisualBasic NET采用事件驱动编程机制 因此大部分程序都是针对窗体中各个控件所能支持的方法或事件编写的 这样的程序称为事件过程 例如 按钮可以接收鼠标单击事件 如果单击该按钮 鼠标单击事件就调用相应的事件过程来作出响应 在多数情况下 特别是小型应用程序 所编写的程序通常由事件过程组成 即针对控件或窗体的事件编写代码 可以用以下四种方法进入事件过程 即打开 代码窗口 1 双击已建立好的控件 2 执行 视图 菜单中的 代码 命令 3 按F7键 4 在 解决方案资源管理器 窗口中选择窗体文件 Form1 vb 然后单击 查看代码 按钮 3 2 2编写VisualBasic NET应用程序 程序要求 在屏幕上开辟一个窗口 窗口的下部有三个按钮 其中左边按钮中标有 显示 中间按钮中标有 清除 右边按钮中标有 结束 当用鼠标单击左边按钮时 屏幕上部的文本框中显示 欢迎使用VisualBasic NET 如果单击中间按钮 则清除文本框中显示的内容 而如果单击右边的按钮 则结束程序 步骤 建立可视用户界面设置可视界面特性编写事件驱动代码 建立用户界面 为了建立应用程序 首先应建立一个新的项目 这可以通过 文件 菜单 新建 子菜单中的 项目 命令来实现 执行该命令后 将打开 新建项目 对话框 在该对话框的 名称 栏中输入test1 在 位置 栏内输入d test 选择 关闭解决方案 单选按钮 然后单击 确定 按钮 即可建立一个新的项目 如果刚启动VisualBasic NET 则可通过单击 起始页 中的 新建项目 按钮打开 新建项目 对话框 一个项目包含两部分内容 即对象和代码 Code 其中对象通常指的是窗体 Form 和控件 Control 窗体是程序运行时的背景窗口和对话框 控件是放置在窗体中的具体的对象 而代码则是控制运行的程序 在一般情况下 每个可以执行的项目至少包括一个窗体 可以根据应用程序的设计要求来改变其位置和大小 用户界面由对象组成 建立用户界面实际上就是在窗体上画出代表各个对象的控件 由题意可知 需要建立的界面包括5个对象 即1个窗体和4个控件 其中3个控件是按钮 1个是文本框 可以按下面的步骤建立用户界面 1 单击工具箱中的命令按钮图标 在窗体的适当位置画一个按钮 按钮1 画完后 按钮内自动标有 Button1 2 重复步骤1 分别画出第二个按钮和第三个按钮 两个按钮内分别自动标有 Button2 和 Button3 3 单击工具箱中的文本框图标 然后在窗体的适当位置画出文本框控件 文本框内自动标有 TextBox1 4 上述4个控件画完后 根据具体情况 对每个控件的大小和位置进行适当调整 设置属性 前面画出的4个控件构成了用户界面 这4个控件就是4个对象 实际上 除4个控件外 还有一个对象 这就是窗体 其当前名称 Name属性 和标题 Text属性 为 Form1 在建立用户界面后 每个对象都有一个默认标题 Text属性 分别为Button1 Button2 Button3 TextBox1和Form1 Text是对象的一种属性 为了使对象的标题符合设计要求 应当对每个对象的Text属性进行修改 属性设置列表 格式1 控件放在窗体中 窗体及其控件构成了用户界面 程序运行后 如果对界面不满意 可以结束运行 然后进行调整 表3 1对象属性设置 格式1 对象名称 Name 标题 Text 窗体Form1 VisualBasic NET应用程序设计示例 左按钮Button1 显示 中按钮Button2 清屏 右按钮Button3 结束 文本框TextBox1空白 属性设置列表 格式2 表3 2对象属性设置 格式2 对象属性设置值 窗体NameForm1Text VisualBasic NET应用程序设计示例 左按钮NameButton1Text 显示 中按钮NameButton2Text 清屏 右按钮NameButton3Text 结束 文本框NameTextBox1Text空白字体宋体字形粗斜体大小16 编写代码 VisualBasic NET的程序代码是针对某个对象事件编写的 每个事件对应一个事件过程 用鼠标单击 Click 一个对象是经常用到的事件 可以针对这样的事件编写事件过程 1 程序代码窗口 主窗口选项卡 类名 栏 方法名称 栏 Form1类定义开始 指定继承 VisualBasic NET自动为Form1生成的程序代码 Form1类定义结束 以大纲方式显示源代码 拆分栏 2 编写过程代码 过程代码是针对某个对象事件编写的 为了指明某个对象的操作 必须在方法或属性前加上对象名 中间用句点 隔开 例如 TextBox1 Text 欢迎使用VisualBasic NET 这里的TextBox1是控件 对象 名 Text是文本框的属性 执行上面的语句后 将在TextBox1文本框中显示 欢迎使用VisualBasic NET 如果不指出对象名 则方法或属性是针对当前窗体的 注意 与控件的属性设置不同 当通过代码设置窗体的标题 Text属性 时 不能用窗体名称 如Form1 作为对象名 例如 Form1 Text 程序设计 是错误的 必须写作Me Text 程序设计 或Text 程序设计 本例中的3个事件 PrivateSubButton1 Click ByValsenderAsObject ByValeAsSystem EventArgs HandlesButton1 ClickTextBox1 Text 欢迎使用VisualBasic NET EndSubPrivateSubButton2 Click ByValsenderAsObject ByValeAsSystem EventArgs HandlesButton2 ClickTextBox1 Text EndSubPrivateSubButton3 Click ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlesButton3 ClickEndEndSub 代码编辑器中的显示 3 2 3代码编辑器 大纲模式与自动格式化自动列出成员名单自动显示快速信息Windows窗体设计器生成初始代码 大纲模式与自动格式化 自动列出成员名单 自动显示快速信息 Windows窗体设计器生成初始代码 从前面的介绍可以看出 在建立窗体时 VisualBasic NET会自动生成一些代码 除前面已介绍的外 还有一个 Windows窗体设计器生成的代码 在默认情况下 这部分代码是折叠的 并用一个方框显示出来 见前面的图3 4 初始代码 Region Windows窗体设计器生成的代码 PublicSubNew MyBase New 该调用是Windows窗体设计器所必需的 InitializeComponent 在InitializeComponent 调用之后添加任何初始化EndSub 窗体重写处置以清理组件列表 ProtectedOverloadsOverridesSubDispose ByValdisposingAsBoolean IfdisposingThenIfNot componentsIsNothing Thencomponents Dispose EndIfEndIfMyBase Dispose disposing EndSub Windows窗体设计器所必需的 PrivatecomponentsAsSystem ComponentModel IContainer 注意 以下过程是Windows窗体设计器所必需的 可以使用Windows窗体设计器修改此过程 不要使用代码编辑器修改它 FriendWithEventsButton1AsSystem Windows Forms ButtonFriendWithEventsButton2AsSystem Windows Forms ButtonFriendWithEventsButton3AsSystem Windows Forms ButtonFriendWithEventsTextBox1AsSystem Windows Forms TextBoxPrivateSubInitializeComponent Me Button1 NewSystem Windows Forms Button Me Button2 NewSystem Windows Forms Button Me Button3 NewSystem Windows Forms Button Me TextBox1 NewSystem Windows Forms TextBox Me SuspendLayout Button1 Me Button1 Font NewSystem Drawing Font 黑体 12 0 System Drawing FontStyle Regular System Drawing GraphicsUnit Point CType 134 Byte Me Button1 Location NewSystem Drawing Point 24 80 Me Button1 Name Button1 Me Button1 Size NewSystem Drawing Size 75 32 Me Button1 TabIndex 0Me Button1 Text 显示 Button2 Me Button2 Font NewSystem Drawing Font 黑体 12 0 System Drawing FontStyle Regular System Drawing GraphicsUnit Point CType 134 Byte Me Button2 Location NewSystem Drawing Point 120 80 Me Button2 Name Button2 Me Button2 Size NewSystem Drawing Size 75 32 Me Button2 TabIndex 1Me Button2 Text 清除 Button3 Me Button3 Font NewSystem Drawing Font 黑体 12 0 System Drawing FontStyle Regular System Drawing GraphicsUnit Point CType 134 Byte Me Button3 Location NewSystem Drawing Point 224 80 Me Button3 Name Button3 Me Button3 Size NewSystem Drawing Size 75 32 Me Button3 TabIndex 2Me Button3 Text 结束 TextBox1 Me TextBox1 Font NewSystem Drawing Font 宋体 15 75 System Drawing FontStyle BoldOr System Drawing FontStyle Italic System Drawing GraphicsUnit Point CType 134 Byte Me TextBox1 Location NewSystem Drawing Point 16 24 Me TextBox1 Name TextBox1 Me TextBox1 Size NewSystem Drawing Size 304 31 Me TextBox1 TabIndex 3Me TextBox1 Text Form1 Me AutoScaleBaseSize NewSystem Drawing Size 6 14 Me ClientSize NewSystem Drawing Size 336 117 Me Controls AddRange NewSystem Windows Forms Control Me TextBox1 Me Button3 Me Button2 Me Button1 Me Name Form1 Me Text VisualBasic NET应用程序设计示例 Me ResumeLayout False EndSub EndRegion 3 3程序的保存和装入 前一节设计了一个简单的VisualBasic NET应用程序 设计结束并初步检查没有错误后 通常应先保存程序 然后再运行程序 看是否符合设计要求 当然 也可以先对程序进行调试和运行 然后再保存 3 3 1保存程序 在建立一个新的应用程序 项目 时 VisualBasic NET将根据所提供的项目名在指定的文件夹中建立一个子文件夹 并在这个子文件夹中保存与应用程序有关的所有信息 包括解决方案文件名 sln 项目文件名 vbproj 窗体文件名 vb 等 在程序设计的过程中 为了避免因断电或其他原因造成信息丢失 应及时将正在编辑的代码或正在设计的窗体存盘 这可以通过 文件 菜单中的 保存 Ctrl S 或单击工具栏上的 保存 按钮来实现 而如果执行 文件 菜单中的 全部保存 Ctrl Shift S 或标准工具栏上的 全部保存 按钮 则可保存当前项目中的所有文件 3 3 2装入程序 启动VisualBasic NET后 可以通过下述操作把前面建立的应用程序装入内存 也可以直接在 文件名 栏中输入解决方案文件或项目文件 包括路径 例如输入d test test1 sln或d test test1 vbproj 1 执行 文件 菜单 打开 子菜单中的 项目 命令 或按Ctrl O 显示 打开项目 对话框 如图3 14所示 2 在 查找范围 栏中选择前面存盘的文件夹 d test 然后选择 test1 文件夹 3 选择test sln或test vbproj 4 单击 打开 按钮 或直接双击test1 sln或test1 vbproj 打开项目 对话框 3 4程序的运行 设计完程序并存入磁盘后 就可以运行程序 运行程序有两个目的 一是输出结果 二是发现错误 运行程序通过 调试 菜单中的 启动 命令 工具栏上的 启动 按钮或热键F5 来实现 3 5VB NET应用程序的工作方式 在Windows操作系统中 大多数应用程序以窗口的形式出现 而在不同的窗口之间传送信息 则是Windows操作系统与应用程序之间 不同的应用程序之间相互交流的主要形式 Windows下的每个应用程序都是基于事件和消息的 并包含一个主事件循环 该循环持续反复检测是否有用户事件发生 当检测到一个用户事件时 程序就对之作出响应 Windows接收到这些事件后 会产生一些相应的消息 应用程序接收到这些消息后 会根据每个消息的用途 产生一系列的执行动作 基于Windows程序设计方法建立的程序是事件 消息 驱动的 事件驱动的程序不是由程序的顺序来控制 而是由所发生的事件来控制 而在面向对象的程序设计中 编程人员要以 对象 为中心来设计模块 而不是以 过程 为中心来考虑应用程序的结构 在事件驱动应用程序中 代码不是按预定的顺序执行 而是在响应不同的事件时执行不同的代码段 事件驱动应用程序的典型操作序列 1 启动应用程序 加载和显示窗体 2 窗体或窗体上的控件接收事件 事件可以由用户引发 例如键盘操作 可以由系统引发 例如定时器事件 也可以由代码间接引发 例如 当代码加载窗体的Load事件时 3 如果相应的事件过程中存在代码 则执行该代码 4 应用程序等待下一次事件 VisualBasic NET程序设计 第4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论