[VB.NET]初学者教程003

  1. 作者:仙人掌工作室
  2. 前言
  3.  大约到2001年的第4季度,VisualBasic的下一个版本VisualBasic.NET将会正式发行。新版的VisualBasic.NET拥有许多VB开发者以前只能梦想的新功能和新特色。同时,成长和发展也意味着付出一定的代价,新的VisualBasic.NET中有许多东西需要重新学习,一些细微的变化很可能带来出乎意料的麻烦。
  4.   Microsoft.NET平台所包含的内容非常广泛。本文将去粗存精,对VB.NET作一个全景式的介绍,看看它到底是什么,有些什么用处,以及如何使用。特别地,本文将分析VB.NET集成开发环境的变化,面向对象功能,底层体系的变化,众多的语法改进,对应用部署和封装支持方面的增强等。
  5. 一、集成开发环境
  6.  第一次启动VB.NET时,你首先注意到的不会是VisualBasic优秀的面向对象支持,而应该是它的IDE(集成开发环境,IntegratedDevelopmentEnvironment)。VS.NET的IDE给人以非常熟悉的感觉,因为设计这个IDE的工作组以前就设计过VB的IDE,VS.NETIDE的改进建立在设计VBIDE的经验之上。
  7. 图A:点击放大
  8.   对于IDE的改进并不停留在表面上。所有.NET语言都使用相同的IDE,IDE内提供的新工具非常全面和强大。例如,所有的设计窗口都可以自动隐藏(就象Windows任务条一样),从而显著地减少了混乱的感觉。
  9.   启动VB.NET时,“VSHomePage”是我们看到的第一个界面。HomePage中显示了最近修改的工程,并提供了打开现有工程、创建新工程的选项(如图A所示)。所有这些选项都以HTML链接形式显示。注意这并不是什么模拟出来的效果,HomePage的布局事实上就是由DHTML编写而成。由于这个原因,用户可以定制HomePage显示其他对自己有用的选项、信息以及HTML链接。
  10.   NewProject对话框中提供了用任意一种语言创建工程的选项,如图B所示,注意图中左边树形列表中列出了好几种语言。如果系统中已经安装了支持VS.NET的第三方语言,Microsoft或许还会在这个列表中包含这些语言。
  11. 图B:点击放大
  12.   图B中,树形列表中的VB节点处于打开状态,右边的一些图标显示了创建新工程的几个选项。注意这里出现了一些新的选项,如WebService、WebControlLibrary、ClassLibrary。最后一个选项显示出:在VB.NET中,多个相关的类可以合并放入单个模块文件之中,而不是象VB6那样把每个类单独放入一个文件。
  13.   激活WinForms工程时的IDE与传统VBIDE最为相似。图C显示了两者最主要的区别。
  14. 图C:点击放大
  15.   ▲隐藏工具框。默认情况下,工具框大多数时候都是隐藏的,点击它的标题可以把它“拉出来”(图D显示了一个已经扩展的工具框。如有必要,可以设置工具框使其总是显示在屏幕上)。对于VB开发者来说,这里最大的变化在于工具框中的控件现在改为垂直排列,每个图标都加上了文字说明,而不象VB6那样只有一个图标。
  16. 图D:点击放大
  17.   ▲卡式子窗口(TabbedChildWindow)。VS.NET利用位于屏幕上方的卡式子窗口布局取代了原来的MDI子窗口布局。卡包括:HomePage,窗体布局窗口,代码窗口,帮助屏幕。
  18.   ▲任务列表(TaskList)。TaskList是一个重要的改进,它帮助开发者跟踪所有待完成的任务。代码生成器、编译器会在TaskList中自动加上一些内容。手工添加任务项目可以按照如下方式进行:找到代码中需要修改的地方,然后插入一行以“TODO:”开头的注释,此后该任务就会自动出现在任务列表中。点击TaskList中的某个任务,代码编辑器中就会出现完成该任务的位置。这种快速定义任务、返回任务的机制将极大地提高开发效率。
  19.   ▲方案资源管理器(SolutionExplore)。它替代了原来的工程资源管理器(ProjectExplorer),与VisualInterDev中的资源管理器非常相似。和InterDev中的资源管理器一样,SolutionExplorer显示了工程所用到的各种资源,包括用其他语言编写的代码模块、各种非代码的资源。其中References是SolutionExplorer中一种全新的资源形式,References管理着命名空间,类似于VB6中的组件引用。
  20.   ▲属性框(Properties)。Properties框与VB6中的属性框非常相似,但它现在支持更多的布局方式(显示方式)。
  21.   ▲窗体布局工具条(FormLayout)。在VB6中,在窗体上排列控件的任务通过一个名为“FormEditor”的工具条完成。改进后的新工具条提供更多的功能,而且在WinForms类型的工程中默认打开。
  22. 图E:点击放大
  23.   除了上面六处改进之外,VB.NET的代码编辑器还有一个重要的新功能:在代码编辑窗口中,点击代码行左边的加号或者减号可以扩展或者折叠代码块,如图E所示。这个功能原本为隐藏可视化设计器自动生成的代码而设计,但它也可以用于隐藏与当前任务无关的代码。
  24.   WebForms工程的设计环境也和原来VB6的设计环境略有不同,如图F所示。在表单布局窗口的下面只显示了两个卡,分别为Design和HTML。这两个卡的功能和VisualInterDev中同一位置的卡相似。Design窗口用来编辑窗体的外观,HTML窗口用于查看DHTML代码。
  25. 图F:点击放大
  26.   VB.NET另外一个引人注目的变化是它的窗体引擎。Microsoft放弃了原来的窗体引擎,现在它给我们提供的是WindowsForms窗体引擎。所有基于CLR的语言都使用WindowsForms引擎,与VB6的窗体引擎相比,WindowsForms有着许多突出的优点。例如,WindowsForms支持创建那些自动改变组件大小的窗体,允许把控件锚定到窗体的特定位置。也就是说,完成这些特殊任务时再也不需要第三方的工具了。WindowsForms还有一些有趣的技术,比如创建透明窗体等。
  27.   以前,VB隐藏了窗体构造过程中的所有细节。我们在IDE中设计窗体,然后把代码加入到Initialize事件,但对这两者之间的处理过程却无法进行任何控制。现在,窗体成了类,类里面包含了构造窗体的全部代码。大多数程序员都不会去看这种描述窗口构造细节的代码,如果说有某种操作一定会破坏应用,这个操作就是搞乱这里的代码。另一方面,由于这些代码允许用户深入控制VB.NET构造窗体的幕后细节,有经验的用户能够利用这些代码实现各种高级功能。如果你不想看到这些代码,你可以不看,因为新的代码编辑器有扩展和折叠代码区域的功能,描述窗体构造过程细节的代码默认处于折叠状态。代码编辑器还有其他一些新的实用功能,比如自动缩进、内建的行号显示功能等。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 --------------------------------     固定格式参数:     General Number 普通数字,如可以用来去掉千位分隔号     format$("100,1
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTime 竟然结果和系统设置的区域语言的日期和时间格式相关。意思是尽管你用诸如 Format(Now, "MM/dd/yyyy"),如果系统的设置格式区域语言的日期和时间格式分隔符是"-",那他还会显示为 MM-dd-yyyy     只有拼凑: <%response.write
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可 ‘添加后还需要一个From用来显示错误。如果到这步还不会则需要先打好基础啦 ‘======================================================== ‘以下事件
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,看来我以前没有认真去找这个方法呀。 https://blog.csdn.net/chzjxgd/article/details/6176325 金蝶K3 BOS的插件官方是用VB6编写的,如果  能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用V
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m As Range, tmpStr As String, s As String Dim x As Integer, y As Integer, subStr As String If MsgBox("确定要分列处理吗?请确定分列的数据会覆盖它后面的单元格!", _
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) 2 Dim path As String, hash As String 3 For Each fil
  Imports MySql.Data.MySqlClient Public Class Form1 ‘ GLOBAL DECLARATIONS Dim conString As String = "Server=localhost;Database=net2;Uid=root;Pwd=123456;" Dim con As New MySqlConnection
‘導入命名空間 Imports ADODB Imports Microsoft.Office.Interop   Private Sub A1() Dim Sql As String Dim Cnn As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim S As String   S = "Provider=OraOLEDB.Oracl
Imports System.IO Imports System.Threading Imports System.Diagnostics Public Class Form1 Dim A(254) As String    Function ping(ByVal IP As Integer) As String Dim IPAddress As String IPAddress = "10.0.
VB运行EXE程序,并等待其运行结束 参考:https://blog.csdn.net/useway/article/details/5494084 Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Pr
今天碰到一个问题,登陆的时候,如果不需要验证手机号为空,则不去验证手机号 因为登陆的时候所有的验证信息都存放在一个数组里 Dim CheckUserInfo() As String ={UserBirthday, SecEmail, UserMob, UserSex, RealNameFirst, RealName, CheckCardID, CheckCardType, Contactemail
在VB6.0中,数据访问接口有三种: 1、ActiveX数据对象(ADO) 2、远程数据对象(RDO) 3、数据访问对象(DAO) 1.使用ADO(ActiveX Data Objec,ActiveX数据对象)连接SQL Server 1)使用ADO控件连接 使用ADO控件的ConnectionString属性就可以连接SQL Server,该属性包含一个由分号分隔的argument=value语
注:大家如果没有VB6.0的安装文件,可自行百度一下下载,一般文件大小在200M左右的均为完整版的软件,可以使用。   特别提示:安装此软件的时候最好退出360杀毒软件(包括360安全卫士,电脑管家等,如果电脑上有这些软件的话),因为现如今的360杀毒软件直接会对VB6.0软件误报,这样的话就可能会在安装过程中被误报阻止而导致安装失败,或者是安装后缺乏很多必须的组件(其它的杀毒软件或安全卫士之类的
Private Sub Form_Load() Call conndb End Sub Private Function conndb() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strCn, sql As String Dim db_host As String Dim db_user As String
  PPSM06S70:  Add  moddate  EDITSPRINTJOB:  MAX(TO_CHAR(ETRN.MODDATE, ‘yyyy/mm/dd/HH24:MI AM‘)) ACTUAL_SHIPDATE   4.Test Scenario (1) :Query SQL Test DN:8016578337 SELECT CTRN.TKCTID TRUCK_ID,        
  沒有出現CrystalReportViewer時,須安裝CRforVS_13_0. 新增1個數據集,新增1個數據表,添加二列,列名要和資料庫名一樣. 修改目標Framework 修改app.config, <startup >改成<startup useLegacyV2RuntimeActivationPolicy ="true">  CrystalReport1.rpt增加數據庫專家 在表單
Imports System.Threading Imports System Public Class Form1 Dim th1, th2 As Thread Public Sub Method1() Dim i As Integer For i = 1 To 100 If Me.Label1.BackColor =
Friend Const PROCESS_ALL_ACCESS = &H1F0FFF = 2035711 Friend Const PROCESS_VM_READ = &H10 Friend Const PROCESS_VM_WRITE = &H20 Friend Const PAGE_READONLY = &H2 Friend Const PAGE_READWRITE = &H4 Friend
以下代码随手写的 并没有大量测试 效率也有待提升 如果需要C#的请自行转换 Function SplitBytes(Data As Byte(), Delimiter As Byte()) As List(Of Byte()) Dim i = 0 Dim List As New List(Of Byte()) Dim bytes As New
Imports System.Data.SqlClient Public Class Form1 REM Public conn1 As SqlConnection = New SqlConnection("server=.; Integrated Security=False;Initial Catalog= mydatabase1; User ID= sa;password")