Visual Basic (VB.NET) 完整教程
第一部分:基础入门
第1章:什么是 Visual Basic?
Visual Basic (VB) 是一种由微软开发的、面向对象的、事件驱动的编程语言,它源自经典的 BASIC 语言,但现代的 VB 通常指 VB.NET,它是 .NET 框架的一部分。

核心特点:
- 易于学习: 语法接近自然英语,可读性高,非常适合初学者。
- 事件驱动: 程序的执行流程由用户事件(如点击按钮、输入文本)触发。
- 强大的 IDE: 拥有 Visual Studio 这款功能强大的集成开发环境,可以轻松设计界面、编写代码和调试程序。
- 面向对象: 支持封装、继承、多态等面向对象编程特性。
应用领域: 主要用于开发 Windows 桌面应用程序 (WinForms, WPF)、Web 应用程序 (ASP.NET)、游戏开发(通过 Unity)、以及各种自动化工具和脚本。
第2章:开发环境搭建
你需要安装 Visual Studio,这是微软官方提供的免费、强大的 IDE。
步骤:

- 下载 Visual Studio Installer: 访问 Visual Studio 官网。
- 选择社区版: 对于个人学习、开源项目和小的专业团队,Visual Studio Community (社区版) 是完全免费的,点击“下载社区版”。
- 安装工作负载: 运行安装程序,在“工作负载”选项卡中,勾选你需要的开发环境,对于初学者,推荐选择:
- 使用 .NET 的桌面开发:用于创建 Windows 窗体应用程序。
- ASP.NET 和 Web 开发:如果你想学习 Web 开发。
- .NET 桌面开发:一个更全面的 .NET 桌面应用开发包。
- 修改和安装: 确认安装路径和所需组件后,点击“安装”,这个过程可能需要一些时间,请耐心等待。
- 启动 Visual Studio: 安装完成后,启动 Visual Studio,选择“开发环境设置”为“Visual Basic 开发”,然后点击“启动”。
第3章:第一个 VB.NET 程序 - "Hello, World!"
我们将创建一个简单的控制台应用程序。
- 在 Visual Studio 中,选择
文件->新建->项目。 - 在模板窗口中,选择
Visual Basic->控制台应用。 - 为你的项目命名(
HelloWorld),并选择一个保存位置,然后点击“创建”。 - Visual Studio 会自动生成一个代码文件
Module1.vb如下:
Module Module1
Sub Main()
' 在此处插入代码
End Sub
End Module
- 在
Sub Main()和End Sub之间输入以下代码:
Console.WriteLine("Hello, World!")
- 按下
F5键或点击工具栏上的绿色“▶”按钮来运行程序。 - 一个黑色的控制台窗口会弹出,显示
Hello, World!,然后按任意键关闭。
代码解释:
Module Module1 ... End Module:在 VB.NET 中,代码通常放在模块或类中。Main方法是程序的入口点。Sub Main():Sub表示一个不返回值的过程(方法)。Main是程序启动时自动执行的方法。Console.WriteLine(...):这是一个预定义的方法,用于在控制台窗口中输出一行文本,并自动换行。
第4章:VB.NET 基本语法
变量和数据类型
变量是用于存储数据的容器,在使用变量前,最好先声明它。
' 声明一个名为 myName 的字符串变量 Dim myName As String ' 声明并赋值 Dim age As Integer = 25 Dim price As Double = 19.99 Dim isStudent As Boolean = True
常用数据类型:

| 类型 | 描述 | 示例 |
|---|---|---|
String |
文本 | "你好,世界" |
Integer |
32 位整数 | 100, -50 |
Double |
64 位浮点数(带小数) | 14, -0.001 |
Boolean |
布尔值(真/假) | True, False |
Date |
日期和时间 | #2025/10/27# |
Char |
单个字符 | "A" |
注释
注释是代码中不会被编译执行的说明性文字,用于帮助理解代码。
- 单行注释:使用单引号
- 多行注释:使用
REM关键字(不常用)
' 这是一个单行注释 REM 这是一个 REM 多行注释
运算符
- 算术运算符: (加), (减), (乘), (除),
Mod(取余) - 比较运算符: (等于),
<>(不等于),>(大于),<(小于),>=(大于等于),<=(小于等于) - 逻辑运算符:
And(与),Or(或),Not(非)
示例:
Dim a As Integer = 10 Dim b As Integer = 3 Dim result As Integer = a Mod b ' result 的值是 1 (10 除以 3 余 1) Dim isEqual As Boolean = (a = b) ' isEqual 的值是 False
控制流
If...Then...Else 语句: 用于条件判断。
Dim score As Integer = 85
If score >= 90 Then
Console.WriteLine("优秀")
ElseIf score >= 60 Then
Console.WriteLine("及格")
Else
Console.WriteLine("不及格")
End If
For...Next 循环: 用于重复执行固定次数的代码。
' 从 1 循环到 5
For i As Integer = 1 To 5
Console.WriteLine("当前循环次数: " & i)
Next
Do...Loop 循环: 用于在条件为真时重复执行代码。
' Do While...Loop: 先判断条件,再执行
Dim count As Integer = 0
Do While count < 3
Console.WriteLine("Do While: " & count)
count += 1
Loop
' Do...Loop While: 先执行一次,再判断条件
count = 0
Do
Console.WriteLine("Do...Loop While: " & count)
count += 1
Loop While count < 3
第二部分:面向对象编程
第5章:类和对象
类 是创建对象的蓝图或模板。对象 是类的实例。
创建一个类:
- 在“解决方案资源管理器”中,右键点击你的项目,选择
添加->类。 - 命名为
Car.vb。
' Car.vb
Public Class Car
' 属性:描述对象的状态
Public Property Brand As String
Public Property Model As String
Public Property CurrentSpeed As Integer
' 方法:描述对象的行为
Public Sub Accelerate()
CurrentSpeed += 10
Console.WriteLine("加速!当前速度: " & CurrentSpeed & " km/h")
End Sub
Public Sub Brake()
CurrentSpeed -= 5
If CurrentSpeed < 0 Then CurrentSpeed = 0
Console.WriteLine("刹车!当前速度: " & CurrentSpeed & " km/h")
End Sub
End Class
使用类(在 Main 方法中):
' 在 Module1.vb 的 Main 方法中
Sub Main()
' 创建 Car 类的对象(实例化)
Dim myCar As New Car()
' 设置对象的属性
myCar.Brand = "Tesla"
myCar.Model = "Model 3"
myCar.CurrentSpeed = 0
' 调用对象的方法
myCar.Accelerate() ' 输出: 加速!当前速度: 10 km/h
myCar.Accelerate() ' 输出: 加速!当前速度: 20 km/h
myCar.Brake() ' 输出: 刹车!当前速度: 15 km/h
End Sub
第6章:方法和属性
- 方法:在类中定义的
Sub(无返回值)或Function(有返回值)过程。Sub:执行一个操作,不返回结果。Function:执行一个操作并返回一个值。
' 一个有返回值的 Function 示例
Public Function GetFullInfo() As String
Return Brand & " " & Model
End Function
' 使用
Dim info As String = myCar.GetFullInfo()
Console.WriteLine(info) ' 输出: Tesla Model 3
- 属性:提供了对类字段的受控访问,它们看起来像变量,但实际上是
Get(获取值)和Set(设置值)方法的组合。
' 自动实现的属性(现代VB.NET推荐写法)
Public Property Color As String
' 传统属性(带有逻辑)
Private _price As Double
Public Property Price() As Double
Get
Return _price
End Get
Set(value As Double)
If value > 0 Then
_price = value
Else
Throw New Exception("价格不能为负数")
End If
End Set
End Property
第三部分:Windows 窗体应用程序
这是 VB 最经典的应用领域,用于创建图形用户界面。
第7章:创建一个简单的 WinForms 应用
- 在 Visual Studio 中,
文件->新建->项目。 - 选择
Visual Basic->Windows 窗体应用。 - 命名项目(
MyFirstApp),点击“创建”。
你会看到一个名为 Form1 的设计窗口和右侧的“工具箱”。
第8章:常用控件
从“工具箱”中拖拽控件到窗体上:
- Button (按钮):用于触发操作。
- Label (标签):用于显示静态文本。
- TextBox (文本框):用于输入和显示文本。
- ComboBox (下拉框):提供一个下拉列表供用户选择。
第9章:事件处理
事件是对象可以识别的动作,如点击、鼠标移动等,处理事件就是为这个动作编写代码。
示例:创建一个点击按钮改变标签文本的应用
- 从工具箱拖动一个
Label控件到窗体,将其(Name)属性改为lblDisplay,Text属性改为“你好”。 - 拖动一个
Button控件到窗体,将其(Name)属性改为btnClickMe,Text属性改为“点击我”。 - 双击
btnClickMe按钮,Visual Studio 会自动切换到代码视图,并为你创建一个按钮的点击事件处理方法btnClickMe_Click。 - 在该方法中编写代码:
Private Sub btnClickMe_Click(sender As Object, e As EventArgs) Handles btnClickMe.Click
' 当按钮被点击时,执行这里的代码
lblDisplay.Text = "你点击了按钮!"
End Sub
代码解释:
Private Sub ... Handles ...:这是一个私有的事件处理过程。Handles关键字将这个过程与btnClickMe的Click事件关联起来。sender As Object:代表触发事件的控件(在这里就是btnClickMe本身)。e As EventArgs:包含事件相关的数据(通常用不到)。
现在运行程序(F5),点击按钮,你会看到标签的文本发生了变化。
第四部分:进阶主题
第10章:异常处理
使用 Try...Catch...Finally 结构来处理程序运行时可能发生的错误,防止程序崩溃。
Sub Main()
Dim num1 As Integer, num2 As Integer, result As Integer
Console.Write("请输入第一个数字: ")
num1 = Convert.ToInt32(Console.ReadLine())
Console.Write("请输入第二个数字: ")
num2 = Convert.ToInt32(Console.ReadLine())
Try
' 可能会出错的代码放在这里
result = num1 / num2
Console.WriteLine("结果是: " & result)
Catch ex As DivideByZeroException
' 当发生除以零的错误时执行
Console.WriteLine("错误:不能除以零!")
Catch ex As FormatException
' 当输入的不是有效数字时执行
Console.WriteLine("错误:请输入有效的数字!")
Catch ex As Exception
' 捕获所有其他类型的错误
Console.WriteLine("发生了一个未知错误: " & ex.Message)
Finally
' 无论是否发生错误,这里的代码都会执行
Console.WriteLine("计算结束。")
End Try
End Sub
第11章:文件操作
VB.NET 提供了强大的类来读写文件。
写入文本文件:
Dim filePath As String = "C:\test\mylog.txt"
Dim textToWrite As String = "这是一条日志信息。" & Environment.NewLine & "时间: " & DateTime.Now
' 使用 Using 语句可以确保文件流在使用后被正确关闭
Using writer As New StreamWriter(filePath)
writer.WriteLine(textToWrite)
End Using
Console.WriteLine("文件写入成功。")
读取文本文件:
filePath = "C:\test\mylog.txt"
Using reader As New StreamReader(filePath)
Dim line As String
Do
line = reader.ReadLine()
If line IsNot Nothing Then
Console.WriteLine(line)
End If
Loop Until line Is Nothing
End Using
学习资源推荐
- 微软官方文档: VB.NET 文档 - 最权威、最全面的学习资料。
- Visual Studio 用户指南: 熟悉 IDE 的各种功能。
- 在线教程网站:
- W3Schools VB.NET 教程: https://www.w3schools.com/vb/ - 简单易懂,适合快速入门。
- TutorialsPoint VB.NET 教程: https://www.tutorialspoint.com/vb.net/ - 内容系统,示例丰富。
- 视频平台: 在 Bilibili、YouTube 上搜索 "VB.NET 教程",有大量视频课程可供选择。
Visual Basic 是一门非常友好的编程语言,尤其适合初学者建立编程思维,它的核心在于 面向对象 和 事件驱动,通过本教程,你已经掌握了从环境搭建、基础语法、OOP 到创建简单 GUI 应用的全过程。
学习建议:
- 多动手实践: 理论学得再多,不如亲手写一个项目。
- 从模仿开始: 尝试复制一些简单的小工具,然后逐步加入自己的想法。
- 学会调试: 学会使用 Visual Studio 的调试器(设置断点、逐行执行)是解决问题的关键技能。
- 阅读优秀代码: 阅看别人写的开源项目代码,能让你学到很多技巧。
祝你学习愉快!
