vb点虐 设计经验 vbnet single

VB自学经验与心得 (VB自学者进)

百度群飞度编程学社1195277 以下是我博客的一篇文章

创新互联服务项目包括宣威网站建设、宣威网站制作、宣威网页制作以及宣威网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,宣威网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到宣威省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

如何学好VB

导语:不要老是想着谁“最有钱途”,这些都不是我们应当考虑的,我们要考虑的是怎样才能真正的精通VB。如果成为了VB的专家,应当很容易赚到钱的。VB程序员为什么工资低,不是VB不行,是因为大部份VB程序员不行,他们只懂得用控件,而没有什么编程的思想。而VB的初学都只会用控件和简单的API就说精通VB了,显然影响的整个VB在程序界的地位,这些人显然不能称为程序员的,只能相当于会使用VB了,就像会Word一样。如果VB程序员都懂的数据结构,UML等,就完全是另外一回事了。有认为VB功能弱,请注意:仙剑95版就是用VB4做的,还有DirectX SDK7中有个一很好玩的3D游戏,声音和动画都非常好,也是用VB写的。所以VB能做很多东西,只要你想去做。

(1)VB不只是数据库和报表。不要以为VB就是数据库和报表,这只是VB强大功能的一小部份。如果这此都搞不清,还是好好的看一下相关的书籍,比在这里问问题有用多了。我以前没有学过数据库,只是有些编程的思路,后来学数据库就非常容易了。我做报表一般用RichTextBox或是From来做,一般都能做的很好,也不用去考虑什么水晶报表了。

(2)不要迷信于API。API能做很多东西,但有些东西在VB里面的函数中就有,API只是VB对WindowsSDK的封装而已。如果想学好API,建议学习SDK。如果VB本身就能很好的支持这个功能,何必还要用API呢。

(3)不要什么都想着控件。如果做程序都想着第三方控件的话,代价是很高的,不仅程序大,安全性也低了很多。其实VB本身带的控件已经完全够用了。

(4)认认真真的把MSDN中关于VB的内容好好看一看,特别是函数和语句,很有用的。

(5)遇到问题不要直接来这里问,自己好好想一想,试着解决这个问题,这虽然在时间上慢了,可是在自身的提高上却有很大的帮助。

(6)没事的时候,多研究些语言上的东西,如数据结构和算法,不要老是想着什么花哨的东西。这对以后的提高非常有帮助。

如何学好VB程序设计

1、学习程序设计的基本要求

2、VB的功能及特点

3、学习VB程序设计的方法

对学习者知识的要求:

首先,学习程序设计要具备一定的数学基础,计算机与数学有很大的联系,综观计算机历史,计算机的数学模型(图灵机,由Alan Turing提出)和体系结构(由John Von Neuman提出)等都是由数学家提出的。因此,要学习好计算机就要有一定的数学基础,不过对于初学者来说,在数学基础方面的要求并不是很高,从我个人的角度来看,有高中数学水平就差不多了。

其次,学习程序设计要有一定的逻辑思维能力,逻辑思维需要长时间的锻炼,如果你觉得自己在逻辑思维能力上有不足,也没有关系,因为编写程序本身也是对逻辑思维的锻炼,初学程序设计应具备的逻辑基础可以从高中数学中学到。

学习程序设计基本要求:

熟悉Visual Basic操作环境与设计工具,能设计应用程序界面。

掌握,理解面向对象程序设计基本概念。

掌握VB语言的基础知识,程序设计的方法。

能阅读一般难的程序;

能应用编写一些简单程序;

具有用Visual Basic开发Windows环境下应用程序的能力和阅读分析一般难度的VB程序的能力。

Visual Basic 简介

Visual Basic 是Microsoft 公司开发的Windows 应用程序开发工具,Visual ——"可视化的",是一种开发图形户界面(GUI)的方法,使得非计算机专业的人也可以开发出专业的Windows软件。

Visual Basic继承了BASIC语言简单易学的优点,又增加了许多新的功能,它采用面向对象与事件驱动的程序设计思想,使编程变得更加方便、快捷,使用Visual Basic既可以开发个人或小组使用的小型工具,又可以开发多媒体软件,数据库应用程序,网络应用程序等大型软件,是国内外最流行的程序设计语言之一。

英文Visual的意思是"视觉的","可视的Baisc"这个名字可能抽象了点,但实际上它却是最直观的编程方法,之所以叫做"可视",你只要看到VB的界面就会明白,实际上你无需编程,就可以完成许多步骤。

在VB中入了控件的概念,在Windows中控件的身影无处不在,如按钮、文本框等。VB把这些控件模式化,并且每个控件都有若干属性用来控制控件的外观,工作方法,能够响应用户操作(事件)。

这样你就可以象在画板上一样,随意点几下鼠标,一个按钮就完成了。这些在以前的编程语言下是要经过相当复杂的工作的。

Visual Basic 特点

1、具有面向对象的可视化设计工具

2、事件驱动的编程机制

3、结构化的程序设计语言

4、提供了易学易用的应用程序集成开发环境

5、支持多种数据库系统的访问

6、高度可移植化的代码

7、VB6.0在开发环境上,网络功能等的大大增强。

可视化设计:Visual Basic为用户提供大量的界面元素(在Visual Basic中称为控件对象),例如 "窗体"、"菜单"、"命令按钮"、"工具按钮"、"检查框"等等。用户只需要利用鼠标,键盘把这些控件对象拖动到适当的位置,设置它们的大小,形状,属性等,就可以设计出所需的应用程序界面。

事件驱动编程:Windows操作系统出现以来,图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的,在使用Visual Basic设计应用程序时,必须首先确定应用程序如何同用户进行交互。(例如发生鼠标单击,键盘输入等事件时,用户必须编写代码控制这些事件的响应方法)这就是所谓的事件驱动编程。

程序设计方法概述

1、初期的程序设计

高运行效率,少占用内存为目标

2、结构化程序设计

程序的可读性,可维护性为目标

程序=算法+数据结构+计算机语言+面向过程的程序设计方法

3、面向对象的程序设计(OOP)

降低程序的复杂性,提高软件的开法效率和改善工作界面为目标

程序=对象+消息+面向对象的程序设计

面向对象的程序设计具有如下的优点:

1、符合人们习惯的思维方法,便于分解大型的复杂多变的问题。由于对象对应于现实世界中的实体,因而可以很自然地按照现实世界中处理实体的方法来处理对象,软件开发者可以很方便地与问题提出者进行沟通和交流。

2、易于软件的维护和功能的增减,对象的封装性及对象之间的松散组合,都给软件的修改和维护带来了方便。

3、可重用性好。重复使用一个类(类是对象的定义,对象是类的实例化),可以比较方便地构造出软件系统,加上继承的方式,极大地提高了软件开发的效率。

4、与可视化技术相结合,改善了工作界面。随着基于图形界面操作系统的流行,面向对象的程序设计方法也将深入人心,它与可视化技术相结合,使人机界面进入GUI时代。

如何学好VB

(1)养成良好的学习习惯

VB程序设计的入门学习并不难,但却是一个十分重要的过程,因为程序设计思想就在这时形成的,良好的程序设计习惯也在这个阶段养成。

(2)学习程序设计要注重理解一些重要的概念。

VB程序设计本身并不复杂。翻开一本程序设计学习的书籍。看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行程序设计,需要深入理解这些概念。因此,在程序入门阶段还是应该重视概念的学习。

(3)自己动手编写程序

程序设计入门阶段要经常自己动手编写程序,亲自动手进行程序设计是创造性思维应用的体现,是培养逻辑思维的好方法。因此一定要多动手编写程序,而且要从小程序开发开始,逐渐提高开发程序的规模。

(4)阅读。借签别人设计的好程序

多看别人设计好的程序代码,包括教材上的例题程序。在读懂别人程序后,要想他为什么这么设计,能不能将程序修改完成更多的功能,则可以学到别人优秀的东西,帮助自己提高自身水平。

(5) VB程序设计学习的重点

重点放在思路、算法、编程构思和程序实现上。

语句只是表达工具,要求堂上积极思考,尽量当堂学懂,并做到灵活应用。

学会利用计算机编程手段分析问题和解决问题。

(6)养成良好的编程习惯

强调可读性,变量要加注释;

程序构思要有说明;

学会如何调试程序;

对运行结果要做正确与否的分析。

学好VB程序设计的具体要求:

(1)课前预习,认真听课并作适当做笔记,课后要认真复习消化所学内容,完成作业。

(2)多写程序,注重实践

程序设计课是高强度的脑力劳动,不是听会的,也不是看会的,而是练会的。

只有自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,学起来才比较从容;只有当你在编写大量程序之后,才能获得真知灼见,感到运用自如。

动手能力的培养是这门课和以往课程最大的不同之处。

(3)上机调试程序应注意的几点:

上机前应认真把实验题在用纸上做一做(包括窗体界面设计;事件代码的编写等)

每次上机后应总结,把没有搞清楚的问题记录下来,请教老师或同学。

平时应多抽课余时间多上机调试程序。注意系统的提示信息,遇到问题,多问几个为什么。 、

(4)保持良好的学习心态

要有自信、自强、积极主动学习。

克服畏难情绪,树立学好程序设计的信心。

VB.NET菜单设计初级入门[3]

五.绘制个性化菜单

先执行以下操作步骤 下列步骤是通过菜单编辑器设计一个简单的菜单 为后面重新绘制做基础

启动Visual Studio Net

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

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

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

在【名称】文本框中输入【自己画菜单】

在【位置】的文本框中输入【E:\VS NET项目】 然后单击【确定】按钮 这样在 E:\VS NET项目 目录中就产生了名称为 自己画菜单 的文件夹 并在里面创建了名称为 自己画菜单 的项目文件

把Visual Studio Net的当前窗口切换到【Form vb(设计)】窗口 并从【工具箱】中的【Windows窗体组件】选项卡中往Form 窗体中拖入下列组件

一个MainMenu组件 名称为 MainMenu

选中 MainMenu 组件 单击鼠标右键 在弹出的菜单中选择 编辑菜单 并按照图 所示界面设计菜单

图 【自己画菜单】项目设计界面之一

此时保存上述步骤 并单击快捷键F 则得到图 所示界面

图 【自己画菜单】运行界面之一

这样通过菜单编辑器就完成了一个非常普通的菜单 下面就对此菜单进行改造 在改造之前 要先设定项目中的三个MenuItem类实例的OwnerDraw属性值为 True 因为只有此属性值为 True 才会触发绘制菜单时所需要的DrawItem事件和MeasureItem事件 之后再在上面项目的基础上执行下一步操作

把Visual Stuido Net的当前窗口切换到Form vb的代码编辑窗口 并在InitializeComponent过程之后添加下列代码 下列代码是绘制 文件 菜单项 其作用是改变 文件 菜单项的字体 大小和菜单项的 其具体的绘制方法请参考下列代码中的注释

Private Sub MenuItem _DrawItem ( ByVal sender As Object ByVal e As System Windows Forms DrawItemEventArgs ) Handles MenuItem DrawItem Dim rfBound As RectangleF = New RectangleF ( e Bounds X e Bounds Y e Bounds Width e Bounds Height )  根据DrawItemEventArgs参数获得菜单项矩形区域并存储到RectangleF类型实例中 Dim rfBound As Rectangle = New Rectangle ( e Bounds X e Bounds Y e Bounds Width e Bounds Height )  根据DrawItemEventArgs参数获得菜单项矩形区域并存储到Rectangle类型实例中  Rectangle类型实例和RectangleF类型实例差不多 但在后面代码中绘制菜单的函数是有区别的  e Graphics FillRectangle(New SolidBrush(Color LightGreen) rfBound) 以LightGreen色彩填充MenuItem 菜单项对应的矩形区域 Dim s As MenuItem = CType ( sender MenuItem ) Dim s As String = s Text  获得MenuItem 菜单项的名称 Dim sfTemp As StringFormat = New StringFormat ( ) sfTemp Alignment = StringAlignment Center  设定要画的菜单名称的对齐方式 中间对齐 e Graphics DrawString ( s New Font ( 宋体 FontStyle Bold ) New SolidBrush ( Color Black ) rfBound sfTemp )  以中间对齐方式 指定字体 大小 在指定的矩形区域重画菜单 If e State = ( DrawItemState NoAccelerator Or DrawItemState Selected ) Then 根据菜单项的当前绘制状态来绘制菜单项 e Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) rfBound ) 对菜单项所在的矩形区域进行色彩填充 e Graphics DrawString ( s New Font ( 宋体 FontStyle Bold ) New SolidBrush ( Color Black ) rfBound sfTemp )  对菜单项名称绘制 End If e DrawFocusRectangle ( )  在 DrawItemEventArgs参数得到矩形范围内绘制聚焦框  e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound )  对菜单项的矩形区域绘制矩形框End Sub

操作完成后 保存修改 此时再单击快捷键F 运行程序 可得到如图 所示的界面

图 【自己画菜单】运行界面之二

可见绘制的 文件 菜单项并没有完全显示出来 并且后面的菜单项也没有显示 这是因为菜单项的显示区域并没有设定 而缺省的空间又不能完全显示造成的 设定菜单项的显示区域大小是通过MeasureItem事件来完成的 具体操作是在MenuItem 的DrawItem事件后添加下列代码 下列代码是是定义MenuItem 的MeasureItem事件 在此事件中设定菜单项的宽度(当然也可以设定高度等)

Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Handles MenuItem MeasureItem e ItemWidth =   设定菜单项的宽度End Sub

保存上述修改后 单击快捷键F 运行程序可得到图 所示界面

图 【自己画菜单】运行界面之三

可见 文件 菜单项就算绘制出来了 由于其他菜单项没有绘制处理 所以也未显示 其他菜单项的绘制方法和 文件 菜单项的绘制方法基本相似 以下是在上述完成的基础上 对其他菜单项进行绘制 从而得到图 所示菜单的具体实现步骤

图 【自己画菜单】运行界面之四

在Form vb中的MenuItem 的MeasureItem事件处理程序之后添加下列代码 下列代码是定义MenuItem 的DrawItem事件 其功能是对 新建 菜单项重新绘制

Private Sub MenuItem _DrawItem ( ByVal sender As Object ByVal e As System Windows Forms DrawItemEventArgs ) Handles MenuItem DrawItem Dim rfBound As RectangleF = New RectangleF ( e Bounds X e Bounds Y e Bounds Width e Bounds Height )   根据DrawItemEventArgs参数获得菜单项矩形区域并存储到RectangleF类型实例中 Dim rfBound As Rectangle = New Rectangle ( e Bounds X e Bounds Y e Bounds Width e Bounds Height )   根据DrawItemEventArgs参数获得菜单项矩形区域并存储到Rectangle类型实例中  Rectangle类型实例和RectangleF类型实例差不多 但在后面代码中绘制菜单的函数是有区别的 e Graphics FillRectangle ( New SolidBrush ( Color LightGray ) rfBound )  Dim s As MenuItem = CType ( sender MenuItem )  Dim s As String = s Text  获得菜单项对应的文本名称 Dim sfTemp As StringFormat = New StringFormat ( )  sfTemp Alignment = StringAlignment Center  设定文本在矩形区域的对齐方式 sfTemp LineAlignment = StringAlignment Center Dim rcText As RectangleF = rfBound rcText Width =  e Graphics DrawString ( s New Font ( 宋体 ) New SolidBrush ( Color Blue ) rcText sfTemp )  e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color LightGray ) ) rfBound )  If e State = ( DrawItemState NoAccelerator Or DrawItemState Selected ) Thene Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) rfBound ) e Graphics DrawString ( s New Font ( 宋体 FontStyle Bold Or FontStyle Underline ) New SolidBrush ( Color Red ) rcText sfTemp ) e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound ) e DrawFocusRectangle ( )  End IfEnd Sub

MenuItem 的DrawItem事件处理代码之后添加下列代码 下列代码是定义MenuItem 的MeasureItem事件 在此事件中实现设定 新建 菜单项的长度和高度

Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Handles MenuItem MeasureItem e ItemWidth =   设定菜单项的宽度 e ItemHeight =   设定菜单项的高度End Sub

在完成上述操作步骤后 再在MenuItem 的MeasureItem事件处理程序之后添加下列代码 下列代码是定义MenuItem 的DrawItem事件 其功能是对 打开 菜单项重新绘制

Private Sub MenuItem _DrawItem ( ByVal sender As Object ByVal e As System Windows Forms DrawItemEventArgs ) Handles MenuItem DrawItemDim rfBound As RectangleF = New RectangleF ( e Bounds X e Bounds Y e Bounds Width e Bounds Height ) 根据DrawItemEventArgs参数获得菜单项矩形区域并存储到RectangleF类型实例中Dim rfBound As Rectangle = New Rectangle ( e Bounds X e Bounds Y e Bounds Width e Bounds Height ) 根据DrawItemEventArgs参数获得菜单项矩形区域并存储到Rectangle类型实例中 Rectangle类型实例和RectangleF类型实例差不多 但在后面代码中绘制菜单的函数是有区别的Dim s As MenuItem = CType ( sender MenuItem ) Dim s As String = s TextDim sfTemp As StringFormat = New StringFormat ( ) sfTemp Alignment = StringAlignment CentersfTemp LineAlignment = StringAlignment CenterDim rcText As RectangleF = rfBoundrcText Width = e Graphics DrawString ( s New Font ( Veranda ) New SolidBrush ( Color Blue ) rcText sfTemp ) e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color LightGray ) ) rfBound ) If e State = ( DrawItemState NoAccelerator Or DrawItemState Selected ) Then e Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) rfBound )  e Graphics DrawString ( s New Font ( Veranda FontStyle Bold Or FontStyle Underline ) New SolidBrush ( Color Red ) rcText sfTemp )  e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound )  e DrawFocusRectangle ( ) End IfEnd Sub

MenuItem 的DrawItem事件处理代码之后添加下列代码 下列代码是定义MenuItem 的MeasureItem事件 在此事件中实现设定 新建 菜单项的长度和高度

Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Handles MenuItem MeasureItem e ItemWidth =   设定菜单项的宽度 e ItemHeight =   设定菜单项的高度End Sub

在上述步骤都正确完成后 本文介绍的手工绘制菜单就完成 此时单击快捷键F 运行 程序就可以得到图 所示的运行界面

六.总结

本文主要内容是介绍VB NET设计和创建菜单 其中不仅介绍了使用菜单设计器来静态设计菜单 还介绍了使用MainMenu类 MenuItem类和ContextMenu类动态创建菜单的实现方法 在动态创建时 首先要了解要创建的菜单类型 是下拉菜单 首先要创建一个MainMenu实例 是弹出菜单 首先要创建一个ContextMenu实例 然后根据菜单中的组成结构 即菜单项中的父子关系 创建出相应菜单 最后就是显示出菜单 如果是下拉菜单 指派给Form的Menu属性 如果是弹出菜单 指派给可视组件或Form的ContextMenu属性 这样动态创建菜单才能够显示出来 动态创建菜单的工作才算完成

此外还介绍了在Visual Basic Net中绘制个性化菜单的实现方法和注意事项 在绘制个性化菜单时最重要的是掌握DrawItem事件和MeasureItem事件用法 及绘制菜单时所要使用到的方法 虽然本文绘制的菜单并不美观 但你可以通过本文介绍的方法来修改 从而实现更美观 更有个性的菜单 最后请记住 在绘制菜单时 首先把菜单项的 OwnerDraw 属性设定为 True

lishixinzhi/Article/program/net/201311/15454

vb点虐 程序设计

Dim SumN As Long

Dim i As Integer

Dim str As String

str = InputBox("请输入个数:")

i = Val(str)

If i 1 Then

Exit Sub

End If

Dim k As Integer

Try

For k = 1 To i

SumN = SumN + k ^ k

Next

MsgBox("结果:" SumN)

Catch

End Try

VB点虐 和C#点虐 各有什么优缺点

C#点虐 优点:

运算符重载。不安全代码(指针和固定内存区)、 无符号整数、移位运算。

VB的优点: 

即时编译、静态事件绑定、条件异常捕获、COM兼容类、宽松的类型检查和变量声明、Visual Basic Runtime库、可选参数、带参数属性、模块等语言特征、动态数组。

通过VB.NET开发好的程序绝对没有问题(包括Direct X游戏开发)。虽然VB.NET的资料少,但是只要C#支持的VB.NET都支持(大体上这样,因为都要经过MSIL中间环节。除了指针之类的VB.NET不支持C#支持,但是没有多大实际用处)。

vb点虐 的资料以英文资料居多(只有英文资料才有看头,中国的没有什么好资料),得看看英文水平过不过关。还有VB.NET的ide也比C#的IDE好得多,代码看得也舒服。(C#的大括号{}太烦人)。

至于VB6对C的帮助,只是理解上会容易一些,其它用处不大。有VB6的基础学VBNET会方便一些,但是并不是会VB6就会VB.NET,它们差别也不小。

扩展资料:

NET、C#和ASP.NET之间的区别 :

1、NET是一个平台,一个抽象的平台的概念。

NET 平台其本身实现的方式其实还是库,抽象层面上来看是一个平台。

基本可以理解的NET核心就是NETFramwork。

NETFramework包括两个关键组成元素:

a. CommonLanguageRuntime,公共语言运行时(CLR0)-提供内在管理,代码安全性检测等功能。

b. NETFrameworkClassLibrary,.NET 框架类库(FLC)-提供大量应用类库,提高开发效率。

学习NET Framework 是所有.NET开发人员都必须的,否则开发NET程序永远都是停留在‘外功’的招式,NETramework 是NET开发高手的‘内功’修行之一。

2、C#是一个程序设计语言,仅仅是一个语言。

程序设计语言仅仅是为了方便开发人员和计算机沟通的工具,虽然 C#语法相对 C 和 C+要多一些,但是相对来看 C#语法都比较固定,这样使用起来却都很容易。我认可一位朋友说的,C#的语法更严谨!

这里回过来看看NET和C#的关系,不得不提的是NET程序的执行过程。

C#符合NETCLR 中的公共语言运行规范。CLS:commonlanguagespecification,当然所有的NET Language 都是符合这个规范的例如:VB.NET、XAML 和 C++/CL等等。

C#需要符合NETCLS,是因为NETCLR和JAVA虚拟机类似,有一个中间语言共机器来执行。所有不同语言的.NET代码在执行前会被编译成同样的中间语言(MSIL),所以所有NET 支持语言都必须符合符合CLS 规范。

P.S:如果做.NET3.0XAML开发的朋友,可以尝试下ildasm.exe看看XAML的应用程序,会发现原来 XAML其实很简单。

3、ASP.NET是一个网站开发的技术,仅仅是.NET框架中的一个应用模型。

用微软公司ASP.NET快速入门中的一句话来解释,ASP.NET是用于生成基于Web的应用程序的内容丰富的编程框架。

ASP点虐 和C#的区别:

编写asp点虐 通常包括两部分的代码:网页层和后台处理层,网页就是用标记语言来写的,而网页对应的后台处理程序则需要点虐 语言来完成,目前主要是采用c#和vb点虐 。

可以说整个的asp点虐 网站通过c#或者vb点虐 来实现。而c#则是ms 点虐 framework的主要语言,可以用在网站,桌面应用等方面。可以算是一种比较流行的编程语言。


文章题目:vb点虐 设计经验 vbnet single
网站链接:http://hbruida.cn/article/ddsjpjj.html