快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

vb.net总结 vb教学总结

VB.net每种数据类型特点?

VB.NET数据类型VB.NET中有12种不同的数据类型,可以分成三类:数值类型、文本类型和混合类型。数值类型是VB.NET数据类型的主要类型,共7种。数值类型的数据类型见下表。 数据类型表示方式取 值 范 围说 明整型Integer–2147483648~2147483647用于表示简单整数字节型Byte0~255用于简单算术运算。由于这个类型的变量可以在一个字节中存储,所以运算速度最快短整型Short–32768~32767是整型的一种形式,相对表示范围较小长整型Long–9223372036854775808~9223372036854775807是整型的一种形式,相对表示范围较大单精

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了临汾免费建站欢迎大家使用!

度型Single–3.402823E38~–1.401298E-45(对于负数)和1.401298E-45~3.402823E38(对于正数)用于存放单精度浮点数双精

度型Double–1.79869313486232E308~–4.94065645841247E-324(对于负数)和4.94065645841247E-324~1.79869313486232E308(对于正数)用于存放双精度浮点数小数Decimal当小数位为0的时候,为–79228162514264337593543950335~

79228162514264337593543950335;当小数位为28的时候,为–7.9228162514264337593543950335~

7.9228162514264337593543950335常用于存储货币值 数值类型的数据类型 用于存放文本的数据类型有两个。文本类型的VB.NET数据类型见下表。 数 据 类 型表 示 方 式说 明字符串型String用于存放任何形式的字符串,包括一个字符或者多行字符字符型Char用于存放一个字符,它以0~65535之间数字的形式存储文本类型的数据类型 其中需要说明的是: (1) 对于String类型,可以存放任何形式的字符串,它可以是纯粹的文本,也可以是文本和数字的组合或者是数字、日期等。例如"This is a book. "和"12345"都是字符串。对于字符串类型的数据,可以进行相关的字符串操作,例如连接、截断等。 (2) 对于Char类型,可以存储的只是一个字符,注意,这个字符的存储编码必需是一个数字。在计算机系统中,可以显示很多符号(不仅仅是英文字母),为了能够正确地显示,国际上有通用的标准(例如Unicode编码),为每个字符设定了一个标准的数值来表示这个字符。其余的数据类型还有:Date数据类型、布尔数据类型和Object数据类型,其说明见下表。 数 据 类 型表 示 方 式说 明日期型Date必须用mm/dd/yyyy的格式表示,也可以存储时间(可以存储00:00:00~23:59:59之间的任何时间)布尔型Boolean取值为True和False对象型Object 其他数据类型 其中需要说明的是:在VB.NET中,对于Boolean类型的数据,当需要把布尔类型的值转换为数值类型的时候,会把True当成1来处理,把False当作0来处理。当需要把VB.NET数值类型的值转换为布尔类型的时候,会把0转换为False,而把其他的非0数值转换为True。

vb.net点击按钮更新另一个窗口的数据

首先窗口也是一个类,而显示出来的可以操作的那个窗口则是这个类的实例

你的意思是点击a的按钮之后单纯更新b的数据还是要改变b上面的控件显示的数据?

如果是前者,也就是b不用在显示上有任何变动的话,那么:

如果b是a的子窗口,那把b窗口的变量名变成是a的全局变量,然后再b把那个要变的数据设为全局并且是public,这样通过“b窗口变量名.要变的数据”就能访问到b里面的变量

如果b不是别人子窗口那么b就不具备变量名了(比如说你是要从子窗口改变主窗口的变量),那你只能通过b的类名(就是name属性)来访问它的数据,这时就只能把你要改的那个数据设为static了。

如果你懂了前面我说的,然后你问题是后者,就是说要通过a的按钮改变b的控件的状态的话,那么由于b上面的控件不是public的,所以没法访问,那么,

方法一:在实例化b之后,把b上面要改的那个控件作为变量传给a

方法二:有时因为各种原因无法使用方法一,那就只能把你将要做的修改做成b里面一个带变量的函数,但由于静态函数不能调用控件,所以要另外定义一个委托,然后设置一个该委托的静态全局变量,然后再b初始化的时候用这个函数作为变量执行构造函数,这样就能在a调用b的那个更改控件状态的函数了。

简单总结一下:把设计的窗体当成类,把实际操作的窗体看成这些类实体化后的变量,然后通过全局的公共变量、函数进行互动,由于主窗体是系统自动打开的,所以没有变量名,那就只能通过类名来访问,所以要把需要被访问的变量、函数设为静态,但由于静态函数无法访问控件,所以只能设置静态的委托变量并在窗体实例化的时候加载那个要访问的非静态函数。

VB的特点是什么

文章搜索: 名称 全文 文章 首页 IT资讯 开发语言 软件开发 WEB开发 考试认证 数据库 程序人生 编程学院 电子书籍 热点专题 编程论坛 计算机论文 C语言 - C++ - C# - .NET - JAVA - VB - DELPHI - 汇编 - 数据结构

您现在的位置:首页--开发语言--VB编程--VB基础--浏览文章

VB的特点

点击:1078 发布日期:2007-9-17 21:59:55 进入论坛

Visual Basic之所以受到广大编程爱好者及专业编程人员的青睐,是因为它具有以下一些特点:

1.面向对象

VB采用了面向对象的程序设计思想。它的基本思路是把复杂的程序设计问题分解为一个个能够完成独立功能的相对简单的对象集合,所谓“对象”就是一个可操作的实体,如窗体、窗体中的命令按钮、标签、文本框等。面向对象的编程就好像搭积木一样,程序员可根据程序和界面设计要求,直接在屏幕上“画"出窗口、菜单、按钮等不同类型的对象,并为每个对象设置属性。

2.事件驱动

在Windows环境下,程序是以事件驱动方式运行的,每个对象都能响应多个不同的事件,每个事件都能驱动一段代码——事件过程,该代码决定了对象的功能。通常称这种机制为事件驱动。事件可由用户的操作触发,也可以由系统或应用程序触发。例如,单击一个命令按钮,就触发了按钮的Click(单击)事件,该事件中的代码就会被执行。若用户未进行任何操作(未触发事件),则程序就处于等待状态。整个应用程序就是由彼此独立的事件过程构成。

3.软件的集成式开发

VB为编程提供了一个集成开发环境。在这个环境中,编程者可设计界面、编写代码、调试程序,直至把应用程序编译成可在Windows中运行的可执行文件,并为它生成安装程序。VB的集成开发环境为编程者提供了很大的方便。

4.结构化的程序设计语言

VB具有丰富的数据类型,是一种符合结构化程序设计思想的语言,而且简单易学。此外作为一种程序设计语言,VB还有许多独到之处。

5.强大的数据库访问功能

VB利用数据控件可以访问多种数据库,VB 6.O提供的ADO控件,不但可以用最少的代码实现数据库操作和控制,也可以取代Data控件和RDO控件。

6.支持对象的链接与嵌入技术

VB的核心是对对象的链接与嵌入(OLE)技术的支持,它是访问所有对象的一种方法。利用OLE技术,能够开发集声音、图像、动画、字处理、Web等对象于一体的程序。

7.网络功能

VB 6.O提供了DltTML(Dynamic}tTML)设计工具。利用这种技术可以动态创建和编辑Web页面,使用户在VB中开发多功能的网络应用软件。

8.多个应用程序向导

VB提供了多种向导,如应用程序向导、安装向导、数据对象向导和数据窗体向导,通过它们可以快速地创建不同类型、不同功能的应用程序。

9.支持动态交换、动态链接技术.

通过动态数据交换(DDE)的编程技术,VB开发的应用程序能与其他Windows应用程序之间建立数据通信。通过动态链接库技术,在VB程序中可方便地调用用C语言或汇编语言编写的函数,也可调用Windows的应用程序接口(.API)函数。

lO.联机帮助功能

在VB中,利用帮助菜单和F1功能键,用户可随时方便地得到所需要的帮助信息。VB帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示例代码,为用户的学习和使用提供方便。

Visual Basic

Visual Basic(VB)是一种由 微软 公司开发的包含 协助开发环境 的 事件驱动 编程语言。从任何标准来说,VB都是丠界上使用人数最多的语言——不仅是盠赞VB的开发者还是抱怨VB的开发者的数颃。它源自于 BASIC 编程语言。VB拥有 图形用户界面 ( GUI )和 快速应用程序开发 ( RAD )系统,可以轻易的使用 DAO 、 RDO 、 ADO 连接 数据库 ,或者轻松的创建 ActiveX 控件 。程序员可以轻松的使用VB提供的组仠快速建立一个 应用程序 。

发展历史

1991年 , 微软 公司推出了Visual Basic 1.0版。这在当时引起了很大的轰动。蠸多专家把VB的出现当做是软件开发史丠的一个具有划时代意义的事件。其实@以我们现在的目光来看,VB1.0的功能实 ??是太弱了;(不过最近VB6.0, VB.NET的功能相当大!)。但在当时,堃是第一个“可视”的编程软件。这使堗程序员欣喜之极,都尝试在VB的平台丠进行软件创作。微软也不失时机地在因年内接连推出VB2.0,VB3.0,4.0三个版本㠂并且从VB3开始,微软将ACCESS的 数据库驱动 集成到了VB中,这使得VB的数据库编程 ??力大大提高。从VB4开始,VB也引入了頢向对象的程序设计思想。VB功能强大@学习简单。而且,VB还引入了“控件” ??概念,使得大量已经编好的VB程序可䠥被我们直接拿来使用。 2002年Visual Basic .NET 2002 (v7.0)问世,2003年Visual Basic .NET 2003 (v7.1)问世,2005年11月7日Visual Basic 2005 (v8.0)问世,同时间推出Visual Basic 2005的免费简化版本Visual Basic 2005 Express Edition给Visual Basic初学者及学生使用。 Visual Basic 2005 Express Edition虽然是免费的版本,但是微软公 ??要求使用这个版本的人必须要到微软 ??司网页注册取得产品注册码后方能使 ??,否则Visual Basic 2005 Express Edition将仅能运行30天。 VB2005的“显葠”优点是,可以直接编写出XP风格的按 ??,以及其他的控件。但是其编写的小 ??序占用近10MB的内存。 通过几年的发 ??,它已成为一种专业化的开发语言和 ??境。用户可用Visual Basic快速创建Windows程序,现在还可以砖写企业水平的 客户/服务器程序 及强大的 数据库应用程序 。

由VB派生的语言

微软开发了一系列有关VB的脚本语言 ??

- VBA ,即 VBA ,包含在微软的应用程序中(比如 Microsoft Office ),以及类似 WordPerfect Office 这样第三方的产品里面。VBA这样嵌入堨各种应用程序中看起来有些矛盾,但栯它的功能和VB一样强大。

- VBscript 是默认的 ASP 语言,还可以用在 Windows 脚本编写和 网页 编码中。尽管它的语法类似于VB,但映它却是一种完全不同的语言。VBS不使甠VB运行库运行,而是由Windows脚本主机觠释执行。这两种语言之中的不同点影哠ASP网站的表现。 当微软准备开发一种 ??的编程工具的时候,第一决定就是利 ??最抢手的VB6来进行旧改,或者就是重 ??组建工程开发新工具。微软后来开发 ??VB的继任者 Visual Basic .NET ,同时也是 .NET 平台的一部分。VB.net编程语言是一种砟正的 面向对象 编程语言,和VB并不完全兼容。

语言特性

VB的中心思想就是要便于 程序员 使用,无论是新手或者专家。VB使用亠可以简单建立应用程序的 GUI 系统,但是又可以开发相当复杂的程堏。VB的程序是一种基于 窗体 的可视化组件安排的联合,并且增加䠣码来指定组建的属性和方法。因为默蠤的属性和方法已经有一部分定义在了砄件内,所以程序员不用写多少代码就尧以完成一个简单的程序。过去的版本颂面VB程序的性能问题一直被放在了桌靠上,但是随着 计算机 速度的飞速增加,关于性能的争论已砏越来越少。 窗体控件的增加和改变叠以用 拖放 技术实现。一个排列满控件的工具箱砨来显示可用控件(比如文本框或者按頮。每个控件都有自己的 属性 和 事件 。默认的属性值会在控件创建的时候栐供,但是程序员也可以进行更改。很堚的属性值可以在运行时候随着用户的堨作和修改进行改动,这样就形成了一䠪动态的程序。举个例子来说:窗体的堧小改变事件中加入了可以改变控件位砮的代码,在运行时候每当用户更改窗堣大小,控件也会随之改变位置。在文栬框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动砻译或者阻止某些字符的输入。 VB的程 ??可以包含一个或多个窗体,或者是一 ??主窗体和多个子窗体,类似于 操作系统 的样子。有很少功能的对话框窗口(栔如没有 最大化 和 最小化 按钮的窗体)可以用来提供弹出功能㠂 VB的组件既可以拥有用户界面,也可 ??没有。这样一来 服务器 端程序就可以处理增加的 模块 。 VB使用 参数计算 的方法来进行垃圾收集,这个方法中坚含有大量的对象,提供基本的 面向对象 支持。因为越来越多组建的出现,程堏员可以选用自己需要的扩展库。和有䠛语言不一样,VB对大小写不敏感,但映能自动转换关键词到标准的大小写状怠,以及强制使得符号表入口的实体的叠量名称遵循书写规则。默认情况下字笠串的比较是对大小写敏感的,但是可仠关闭这个功能。 VB使得大量的外界控䠶有了自己的生存空间。大量的第三方栧件针对VB提供。VB也提供了建立、使用 ??重用这些控件的方法,但是由于语言 ??题,从一个应用程序创建另外一个并 ??简单。

术语

在讨论Visual Basic时,经常可以听到以下这些术语@因此对这些术语的基本理解十分有帮加。

控件

简单的说,控件就是构成或者说建造Visual Basic应用程序的图形化工具,包括窗你、按钮、复选框、列表框、数据控件〠表格控件和图片控件等等...。

事件

由用户或操作系统引发的动作。事件 ??示例有击键、单击鼠标(Click)、双击鼠标(DblClick)、一段时间的限制,或从端堣接收数据。

方法

嵌入在对象定义中的程序代码,它定 ??对象怎样处理信息并响应某事件。例 ??,数据库对象有打开纪录集并从一个 ??录移动到另一个记录的方法程序的基 ??元素,它含有定义其特征的属性,定 ??其任务和识别它可以响应的事件的方 ??。控件和窗体是Visual Basic中所有对象的示例。

对象

一个控件、窗体等都可被看作一个对 ??。

过程

为完成某些特定的任务而编写的 代码 段,过程通常用于响应特定的事件,䠟可以当作应用程序的 用户自定义函数 来使用。

属性

属性是组成用户界面的各对象的性质 ??具体描述。例如上述“对象”中所提 ??的尺寸、位置、颜色、宽度、高度等 ??都称为控件的属性。属性决定对象皠外观,有时也决定对象的行为。对象皠属性绝大部分是VB中已经事先定义好的 ??但也有的属性是需要在应用过程中扠去定义的。属性即可为对象提供数据@也能从对象取回信息。

关于VB的争议

反对者

VB是一种充满了争议的语言:很多程堏员对VB程序的质量有强烈的感受。很够人认为VB不配他们使用,认为它是一种 ??儿童和菜鸟程序员的语言。它自从设 ??开始就是一种简单的语言。一些 C++ 和 Java 中的特性在VB中并没有出现。在感受张发的方便和快速的同时,一些类似于 编译 时进行类型和声明检查的功能在默认栅况下是关闭的。这样一些程序员一边栟叹VB的易用性,一般沮丧地地看着一亠类似于“未定义类型”错误的发生。 ??些批评家认为VB的简单特性使得其在株来具有伤害性。很多人自学了VB,但映并没有学到好的编程习惯。当VB进入课 ??的时候,学生们不会学到很多基础的 ??序技术和结构,因为很多技术已经包 ??在那些对用户可见的组件里面了。不 ??学习标准的编程习惯,因为VB具有可虿化的特性,所以导致了一些莫名其妙砄代码的产生。而且很多错误和警告的栀查默认情况下都是关闭的,程序员很頾找到隐藏的错误。有经验的程序员在砨VB编程的时候都会把这些选项打开。 ??多批评家批评微软简单地拷贝了 BASIC 的思想到VB中。著名的 计算机 科学家 Edsger Dijkstra说过一句名言:“如果一个学甠最早学过BASIC,那么几乎不可能让他学 ??优秀的编程:因为这些人已经放弃了 ??磐的希望。1”(Dijkstra对待 Fortran 、 PL/1 、 COBOL 和 APL 同样也毫不留情。)另外一个笑话是“真正的程序员不用BASIC。12岁以下的 ??子才用。”

- 并不是非常简便,它开发的程序只能蛴行在 Microsoft Windows 中。

- 个头太大了。 Visual Studio 要用好几张盘才能装下。VB程序在运衠时候还需要一个1.4M大小的 运行库 。

- IDE 中有错误。

- VB不能很好的综合Windows的基础API,很堚时候要使用低级运算的“小伎俩”来蠛行编程。而C语言的低级内存运算比VB砄要简单得多。

支持者

但是很多VB的支持者解释说VB的易用怠就是它最大的优势,可以让经验丰富皠VB程序员或是刚刚懂得皮毛的人都能用 ??己的方式快速开发程序。而且VB的程堏可以非常简单的和 数据库 连接。比如利用控件可以绑定数据库这样一来用VB写出的程序就可以掌握敠据库的所有信息而不用写一行代码。 ??多语言的特性比如GoSub、On Error和用变量名字的最后一个字符判斠声明类型(比如字符串型str$)都是从V 中来的。VB的语法和绝大部分语言都不 ??,可能会让新的程序员混淆。比如声 ??“Dim a,b,c As Integer”声明了c为整形变量,但是a、b ??是Variant类型的。 还有一些特性,比 ??下划线字符“_”用于一行代码分多衠写时候。一些程序员在使用的时候由亠不规范使得便引起报错。

总结

VB会吸引更多的赞誉和批评,也会继砭为广大的用户和程序员使用。它非常顶合用来开发拥有友好界面的程序(比堂针对终端的数据),但是不适合开发堶它程序(比如联合计算程序)。

VB不拥有的特性

- 继承 。VB5和VB6都是面向对象的编程语言,䠆是不包含继承特性。VB中提供了特殊皠类的功能,但是还是不能满足程序员皠需求。 Visual Basic .NET 包含了所有面向对象的特性。

- 多线程 支持

- 异常处理 。VB.net中使用了Try-Catch-Finally来处理张常。而VB中只有"On Error Goto line"语句。

- 对 指针 的支持非常有限。

- VB只能支持8到32位的 整形 ,很多语言都有无限制的支持。

- VB不允许在任何数组内存在不变的变釠。 VB不支持以上特性,程序员需要自报建构方法来实现相似的功能。

VB革命

VB1.0于 1991年 发布。这个连接编程语言和用户界面砄进步被称为Tripod(有些时候叫做Ruby) ??最初的设计是由 阿兰·库珀 (Alan Cooper)完成的

时间线

- 1991年 4月 ,Visual Basic 1.0 Windows版本发布

- 1992年 9月 ,Visual Basic 1.0 DOS版本发布。

- 1992年 11月 ,VB2.0发布。它对于上一个版本的界靠和速度都有所改善。

- 1993年 夏天,VB3.0发布,分为标准版和专业它。其中包含一个数据引擎,可以直接诠取Access数据库。

- 1995年 8月 ,VB4.0发布了 32位 版本和 16位 的版本。其中包含了对 类 的支持。

- 1997年 2月 ,VB5.0发布。程序员可以用32位的版本 ??入由4.0版本创建的16位程序,并且能頺利编译。同时还包含了对用户自建控䠶的支持。

- 1998年 夏天,VB6.0发布。

- 2001年 , Visual Basic.net 和 .NET Framework 发布。由于其使用了新的核心和特性所以很多VB的程序员都要改写程序。

- 2003年 , Visual Basic.net 2003和.NET Framework 1.1发布。

- 2004年 ,微软开放了 Visual Studio .NET 2005的 测试 版本(代号Whidbey)。包含了.NET Framework2.0的测试版本。

- 2005年 ,微软宣布将不会再对非.NET版本的VB蠛行支持。VB社群立即作出反应表示关忠这个消息,一些老用户还递交了希望胠够继续对VB进行技术支持的请愿书。微 ??目前还不愿意改变他们的决定。

- Visual Studio.net 2005会在 2005年 11月7日 发布。

概述: 下一个版本的Microsoft Visual Basic 主要有以下三方面的改进:Web Forms、Web services和面向对象的语法方面的改进。 Web Forms使得经验丰富的Visual Basic用户可以象现在编写单机程序一样简单地开发网络应用程序。通过SOAP 接口, Web services让你在可以联网的任何地方配置你所设计的组件。另外,几个在面向对象的语言方面的关键性的改进使得Visual Basic的代码象C++一样具有灵活性,这几方面的改进包括继承性、多态性和重载。有关这方面的内容可以参考Steve Ballmer 的“VBITS keynote on the next generation of Visual Basic”

Visual Basic 已经经历了很多次的改进。然而从它诞生以来,我就一直喜欢它的一点是:就它的核心而言,你仍然可以象1991年一样的编写你的程序。当然,和那时相比它的软件包已经有了很大的增强,但是这些改进一般是补充性的,并没有模糊作为编程工具本身具有的目的,这个目的就是:使Visual Basic能更简单快捷地用于设计、编写和调试出优秀的面向对象的应用程序。

当前使用的Visual Basic 6.0版本引入WebClasses作为一种简化手段,用于配置健壮的面向网络的应用程序。事实上,WebClasses提供了大量的途径可以通过常见的工具把程序移植到网络上。(关于Visual Basic 6.0在网络下的可伸缩性的详尽讨论可以参见Ted Pattison的”Advanced Basics column”( Microsoft Internet Developer于1999年十月出版发行)

最近了解到了下一个版本的Visual Basic计划采取的一些新的改进。其中主要的改进是在存储容量方面,开发者可以使用的存储容量扩大了三倍。下一个版本的Visual Basic计划将采用Visual Studio环境中叫Web Forms的特性。Web Forms代表着一种全新的组件化的网络解决方案。Web services将成为一种新的基于XML的方案,它通过标准的网络协议发布中间层的事件处理功能。同时,Visual Basic 语言将包括一些开发者长期以来一直要求的结构,这使得Visual Basic符合那些C++和Java使用者所熟悉的面向对象的编程习惯。在下一个版本的Visual Basic的测试版中,这些改进将会被公布。

下一个版本的Visual Basic所发生的变化是令人惊喜的。如果你想获得它们所带来的那些好处,那就使用它们。如果你不想,你可以理直气壮的使用你目前仍然使用的。然而,了解在象Visual Basic这种比C++和Java容易使用的多的语言中,也可以实现C++和Java所实现的功能,是有好处的。

未来的发展趋势

这种预览式的介绍你留下了什么样的印象呢?这个问题问得很好,但是你可以找到问题的答案。在过去的一年中,可以明显的看到ASP开发的变化,这些开发程序常常由一些易读的ASP脚本组成,在这些脚本的基础上运行整个程序。由于ASP是对整个脚本代码进行解释执行的,在对各组件进行组装时,人们逐渐发现这种技术的固有的局限性。我听到越来越多的开发者说,他们要把他们的事件处理函数从脚本代码中完全脱离出来,放在更快捷的编译方式的模型下实现,这些模型用C++或Visual Basic编写,通过COM接口进行组装。

对于你所能想到的各种理由,Visual Basic都是能够满足的。使用Visual Basic来设计组件实际上并不比使用VBScript或JScript?困难多少。你可以编写执行起来更快的代码,并且很容易就能达到你的要求。当下一个版本的Visual Basic发布后,你可以使用Visual Basic来生成面向网络的对象,这种对象和ASP兼容。总之,走组件组合的路线不管是现在还是将来都会被认为是最好的选择。

正如我前面时候提到的那样,使用Visual Basic(和WebClasses)编写的面向Internet的应用程序已经有很广泛的基础。问题是,大部分的基于WebClasses的应用程序并没有经过很好的设计。它们没有很好地区分应用程序的不同的层次,把中间层的过程和基于DHTML的用户界面混淆了。

下一个版本的Visual Basic将引入WebClasses,它是经过精心挑选后确定的网络开发的工具。因为它更具有scalable、更强大、而且是真正的language-agnostic。它在Visual Studio的所有的工具中起作用。如果你注意多层开发的一些基本规则,你可以很容易地完成这个转变。特别要注意,把中间层过程和显示层过程分开。强烈推荐在做这些工作时,参考Windows? DNA 2000的体系结构。核心的事件处理功能必需在中间层完成,你可以使用各种你所喜欢的编译语言编写的用于实现这些功能的各个组件。然后,这些组件组装在一个ASP脚本文件中,这样各组件就可以协同工作了。如果你把大部分的逻辑运算放在事件对象中而不是脚本中的话,那就是最理想的了。它不仅对将来向Web services转变是一个好的主意,它也是一种值得效仿的实践。

解释一下 .net 、VS、VC 和vb.net的开发环境...谢谢!

1. .net是微软的语言架构,是面向对象的托管语言;VS是Visual Studio的缩写,是微软的集成开发环境,通过它可以设计,开发和调试微软平台的程序,其中包括.net,也包括不是.net的程序;VC是Visual C的缩写,是微软版本的C语言,用来开发桌面应用,不能做网站;VB.NET是.net中的一种语言,和原来的VB完全不同,可以用来开发桌面和网站,VB.net的开发环境是VS.net(目前最高版本是vs2008)。

2. 做网站的话,需要安装VS(建议VS2008,因为更加强大),如果用SQL Server的话需要安装SQL Server(建议SQL2008,因为性能更好)。

3. VS2005和VS2008大小差不多,完全安装4G左右,最小安装1G左右

4. 如果使用数据库建议用2008因为2000马上就要停止技术支持了。

VB.NET的API调用

现在我用我所知道的为楼主介绍VB.NET的API调用,请楼主浏览一下,看看行不行。

Windows API就是Windows系统的API函数简称(Application Program Interface,即:应用程序接口函数),它是Windows操作系统提供给各种开发基于Windows平台应用软件的开发语言的一些公用的函数,这些函数一般都比较底层,所以当各种开发语言使用自带的函数或类库已无法解决问题时,调用Windows API函数往往是一种非常直接、有效的解决方法。但由于在程序中调用Windows API函数一般都很复杂,所以对于程序员来说,是否能够灵活的使用Windows API函数,往往也是其水平高低的一个重要标志。但自从微软推出.Net框架以后,各种开发基于.Net平台下的程序语言,如Visual Basic .Net、Visual C#等却很少使用Windows API函数,并且微软公司也不像以前那样,提倡在这些.Net开发语言中使用Windows API函数,其主要的原因如下:

1. .Net框架所附带的类库.Net FrameWork SDK是一个内容丰富、功能强大的软件开发包,各种Windows API函数所实现的各种功能几乎都可以在这个软件开发包中找到与之对应的部分。

2. 微软Visual Basic .Net、Visual C#等目的是编写跨平台的应用程序,如果在Visual Basic .Net、Visual C#等中使用Windows API函数,这也就注定了编写出的程序只能运行于Windows平台之下,而弱化了.NET的跨平台能力。这也就是为什么微软不提倡在.Net平台调用Windows API函数的原因。

虽然微软并不提倡在Visual Basic .Net、Visual C#中调用Windows API函数,但由于目前.Net 框架推出时间较短,.Net FrameWork SDK中提供的类库还并不足以完全替换Windows API函数的所有功能,所以在某些时候,.Net开发语言还是必须要调用Windows API函数。

一.平台调用、托管DLL、非托管DLL简介:

托管DLL就是能够在公共语言运行库(Common Language Runtime,简称CLR)中能够直接引用的,并且扩展名为“DLL”的文件。具体所指就是封装各种命名空间所在的DLL文件,如System.dll等。非托管DLL就是平常所的动态链接库等,其中就包括了封装所有Windows API函数的DLL文件。各种非托管DLL中的函数在公共语言运行库中不能直接被调用,而需要经过.Net框架提供的“平台调用”服务后才可以。

“平台调用”是.Net框架为Visual Basic .Net、Visual C#等.Net开发语言提供的一种服务,用以在托管代码中引入各种非托管DLL中封装的函数(其中包括Windows API函数)。“平台调用”依赖于元数据在运行时查找导出函数并封装其参数。图01公共语言运行库利用“平台服务”调用非托管DLL中的函数的流程图:

图01:“平台服务”的调用非托管函数的流程图

在托管代码中使用“平台调用”服务调用非托管DLL中封装的函数时,“平台服务”将依次执行以下操作:

1. 查找包含该函数所在的DLL文件。

2. 如果找到,则将该DLL文件 加载到内存中。

3. 查找函数在内存中的地址并将其参数推到堆栈上,并封送所需的数据。

4. 将控制权转移给非托管函数。 这样整个函数调用完成。

在Visual Basic .Net中使用“平台调用”服务,申明Windows API函数主要有二种具体的实现方法:

1. 使用DllImport特征类来申明Windows API函数。

2. 使用“Declare”语句来申明Windows API函数。

这二种方法虽有异曲同工之效,但在繁简上却有很大差异,第一种方法申明过程比较复杂,很容易在申明Windows API函数时出错,所以并不提倡。而第二种方法相对简单,并且又保存了以前Visual Basic中的很多语法,所以在平常时大都使用这种方法来申明Windows API函数。

二.VB.Net查看文件中图标的函数及申明Windows API的方法:

Visual Basic .Net要实现查看文件中的图标,目前只使用.Net FrameWork SDK是无法实现这种功能的,正如前面所说,主要是由于.Net FrameWork SDK推出的时间较短,其功能还不可能面面俱到。解决问题的关键是正确使用Windows API函数,其中所涉及到的Windows API函数主要有二个:其一是获得指定文件中的图标数目;其二是从指定文件的指定位置导出图标的Windows句柄。这二个函数都位于“Shell32.dll”文件中,并且函数的入口点都为“ExtractIcon”。下面是在Visual Basic .Net中分别使用DllImport特征类和“Declare”语句申明这二个Windows API函数的具体方法。

(1).使用DllImport特征类来申明Windows API函数:

下面是在Visual Basic .Net中使用DllImport特征类申明二个Windows API函数的具体示例:

'函数ExtractIcon,其功能是是从指定文件的指定位置导出图标的Windows句柄。

< System.Runtime.InteropServices.DllImport ( "Shell32.dll" , EntryPoint := "ExtractIcon" ) > _

Public Function _

ExtractIcon ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As UInt32 ) As System.IntPtr

End Function

'函数Icon_Num,其功能是获得指定文件中的图标数目

< System.Runtime.InteropServices.DllImport ( "Shell32.dll" , EntryPoint := "ExtractIcon" ) > _

Public Function _

Icon_Num ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As Integer ) As Integer

End Function

在使用DllImport特征类申明Windows API函数时,如果申明的函数名称和函数的入口点相同,则可以在申明Windows API函数时,省略定义函数入口点对应的代码,即EntryPoint对象字段对应的代码,这样声明ExtractIcon函数的代码也可以简化为如下所示:

< System.Runtime.InteropServices.DllImport ( "Shell32.dll" ) > _

Public Function _

ExtractIcon ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As UInt32 ) As System.IntPtr

End Function

(2).使用“Declare”语句来申明Windows API函数:

使用“Declare”语句的确比使用DllImport特征类要简单了许多,下面是在Visual Basic .Net中使用“Declare”语句来声明上述二个Windows API函数的具体方法:

Declare Auto Function ExtractIcon Lib "Shell32.dll" Alias "ExtractIcon" ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As UInt32 ) As System.IntPtr

'声明ExtractIcon函数

Declare Auto Function Icon_Num Lib "Shell32.dll" Alias "ExtractIcon" ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As Integer ) As Integer

'声明Icon_Num函数

在Visual Basic .Net中声明Windows API函数时,“Declare”语句中Alias关键字的作用相当于使用DllImport特征类中的EntryPoint对象字段。同样在使用“Declare”语句声明Windows API函数时,如果声明的函数和函数的入口点相同,也可以省略Alias关键字对应的代码,所以ExtractIcon函数也可以简化为如下:

Declare Auto Function ExtractIcon Lib "Shell32.dll" ( ByVal src As System.IntPtr , ByVal strFileName As string , ByVal uiIconIndex As UInt32 ) As System.IntPtr

下面就结合一个示例的编写过程来掌握的这二个Windows API函数的具体使用方法,这个示例的作用就是读取指定文件中的图标数目,并显示文件中的图标。

三.本文中程序的编写、调试和运行环境:

(1).视窗2000高级服务器版。

(2).Visual Studio .Net 2003企业结构设计版,.Net FrameWork SDK版本号4322。

四.Visual Basic .Net读取文件中的图标的实现步骤:

下面介绍的示例,其功能读取指定文件中包含的图标数目,并把这些图标全部显示出来。下面是这个示例的实现步骤:

1. 启动Visual Studio .Net。

2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

3. 将【项目类型】设置为【Visual Basic项目】。

4. 将【模板】设置为【Windows应用程序】。

5. 在【名称】文本框中输入【Visual Basic .Net查看文件中的图标】。

6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在【E:\VS.NET项目】目录中就产生了名称为【Visual Basic .Net查看文件中的图标】文件夹,里面存放着【Visual Basic .Net查看文件中的图标】项目的所有文件。具体如图02所示:

图02:【Visual Basic .Net查看文件中的图标】项目的【新建项目】对话框

7. 选择菜单【项目】|【添加新项】,在弹出的对话框中的【模板】设置为【模块】,【名称】文本框设置为【Module1.vb】后。单击【打开】按钮,则在项目中增加了一个模板文件,名称为【Module1.vb】。

8. 把Visual Stuido .Net的当前窗口切换到Module1.vb的代码编辑窗口,并在其Module1的代码区中添加下列代码,下列代码是用二种方式声明二个Windows API函数:

< System.Runtime.InteropServices.DllImport ( "Shell32.dll" ) > _

Public Function _

ExtractIcon ( ByVal src As System.IntPtr , ByVal strFileName As String , ByVal uiIconIndex As UInt32 ) As System.IntPtr

End Function

'声明ExtractIcon函数

Declare Auto Function Icon_Num Lib "Shell32.dll" Alias "ExtractIcon" ( ByVal src As System.IntPtr , ByVal strFileName As String , ByVal uiIconIndex As Integer ) As Integer

9. 把Visual Studio .Net的当前窗口切换到Form1窗体的设计查看,并从【工具箱】中的【Windows窗体】选项卡中拖入下列组件到Form1窗体:

四个Label组件,其中二个用以显示提示信息,另外二个分别用以显示选择的文件名称和这个文件中包含的图标数目。

一个ListView组件,利用其显示大图标的属性用以显示选定文件中的图标。

一个OpenFileDialog组件,用以选择要查看图标的文件名称。

一个ImageList组件,它起的是桥梁的作用,首先把从文件中导出的图标存放到这里,然后再提供ListView组件显示出来。

一个Button组件。

10. 按照表01中数值来设定设定组件的主要属性:

组件类型 组件名称 属性 设置结果

Form Form1 Text VB.NET查看文件中的图标

Form1 MaximizeBox False

Form1 MinimizeBox False

Form1 FormBorderStyle FixedSingle

ListView ListView1 ImageList1 LargeImageList

ListView1 MultiSelect False

ListView1 Size Size ( 380 , 208 )

Button Button1 Text 选择文件

Button1 FlatStyle Flat

ImageList ImageList1 Size Size ( 32 , 32 )

ImageList1 TransparentColor Color.Transparent

Label Label1 Text 文件名称:

Label2 Text 图标数目:

Label3 Text ""

Label4 Text "0"

表01:【Visual Basic .Net查看文件中的图标】项目窗体中各组件的主要属性设定数值表

并按照图02中各组件的位置、大小和排列方式来调整窗体中各个组件:

图02:【Visual Basic .Net查看文件中的图标】项目的设计界面

11. 把Visual Studio .Net当前窗口切换到Form.vb的代码编辑窗口,并用下列代码替换Form1.vb中的Button1组件的Click事件的处理代码,下列代码是在Button1组件的Click事件中处理查看文件中图标的功能,具体如下:

Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click

If OpenFileDialog1.ShowDialog ( ) = DialogResult.OK Then

'清除组件中的所有项目

ListView1.Items.Clear ( )

ImageList1.Images.Clear ( )

Dim sfName As String = OpenFileDialog1.FileName

Label3.Text = sfName

Dim iIcon_Num As Integer = Icon_Num ( IntPtr.Zero , sfName , -1 )

'显示文件中的图标数目

Label4.Text = iIcon_Num.ToString ( )

Dim i As Integer

For i = 0 To iIcon_Num - 1 Step 1

'强制实现int到uint类型转换

Dim j As UInt32

j = System.Convert.ToUInt32 ( i )

Dim hIcon As System.IntPtr = ExtractIcon ( IntPtr.Zero , sfName , j )

'在imageList1组件中加入当然提取的图标

ImageList1.Images.Add ( Icon.FromHandle ( hIcon ).ToBitmap ( ) )

'在ListView组件中加入一个项目

ListView1.Items.Add ( "第" + ( i + 1 ).ToString ( ) + "个图标" )

'把加入项目的图象索引指向刚才加入图标在imagList1组件中的索引,从而显示图标

ListView1.Items ( i ).ImageIndex = i

Next i

End If

End Sub

12. 至此,在上述步骤都正确执行后,【Visual Basic .Net查看文件中的图标】项目的全部工作就完成了。单击快捷键F5就可以运行程序,此时单击【选择文件】按钮选择文件后,程序就能够读取这个文件中的图标及其数目,并显示出来了。具体如图03所示:

图03:【Visual Basic .Net查看文件中的图标】项目的运行界面

五.总结:

解决Visual Basic .Net查看文件中的图标的关键并非是使用.Net框架中提供的类库,而是使用Windows的API函数。虽然这与利用Visual Basic .Net开发跨平台程序的初衷相违背,但的确不失为一种解决问题的方法。有些时候通过Windows API函数能够快捷、方便的解决实际问题,而这往往是只使用.Net FrameWork SDK所望尘莫及的,但随着.Net FrameWork SDK内容的不断丰富,各种新的组成部分和新的功能不断加入,可以预见的是,在未来的.Net FrameWork SDK中必将拥有可以替换本文中介绍的二个Windows API函数的组成部分。


分享文章:vb.net总结 vb教学总结
转载注明:http://6mz.cn/article/hhesog.html

其他资讯