||
1. Visual Basic语言基础知识
1.1. 书写规则
1.1.1. 注释
单引号“’”后接注释内容
1.1.2. 断行和并行书写
断行的符号用“ _”(一个空格紧跟一个下画线)表示。
1.1.3. 命名规则
常量:一般使用全部大写字母或“con”开头
变量:根据不同类型,命名时将类型的缩写作为前缀
对象:根据不同类型,命名时将类型的缩写作为前缀
1.2. 数据类型
1.2.1. 基本数据类型
数据类型 |
大小 |
范围 |
用法示例 |
Short |
16位(2B) |
-32768~32767 |
|
Ushort |
16位 |
0~65535 |
|
Integer |
32位 |
-2147483648~2147483647 |
|
UInteger |
32位 |
0~4294967295 |
|
Long |
64位 |
|
|
ULong |
64位 |
|
|
Single |
32位浮点 |
|
|
Double |
64位浮点 |
|
|
Decimal |
128位 |
需要强制Visual Basic初始化为Decimal类型时后加字母D |
|
Byte |
8位 |
0~255 |
|
SByte |
8位 |
-128~127 |
|
Char |
16位 |
在0到65535范围内任意Unicode编码的符号。初始化位Char类型时后加字母C |
|
String |
每个字符16位 |
0到大约20亿个16位Unicode字符 |
|
Boolean |
16位 |
True或False |
|
Date |
64位 |
January 1,0001到December 31,9999 |
|
Object |
32位 |
可以是任意值 |
|
a. 赋值Object类型的变量必须使用Set语句。
b. 日期常量赋值用“#”括起。
c. 用户自定义数据类型例如:
Structure TypeName
数据成员定义语句
End Structure
*类似结构数据类型。
1.2.2. 变量的命名规则
a. 变量名首字符必须是字母。
b. 变量名只能由字母、数字和下画线组成。
c. 变量名不能使用VB中的关键字(保留字)。
d. 变量名在同一个作用域中必须唯一。
e. 变量名长度超过255个字符。
f. 变量的命名最好遵守一定的编程约定。
1.2.3. 变量的隐式声明和隐式说明
a. 将以下两条语句置于代码模块顶部:
Option Explict Off:允许在使用变量时才声明类型(即隐式声明)
Option Infer On:允许Visual Basic自动确定变量类型,否则默认为Object数据类型
b.VB允许在便两名后加上一个类型说明字符,来规定变量的类型,VB中规定的类型说明字符如下表:
1.2.4. 字符串运算符
VB中的字符串运算符主要用来将两个字符串连接成一个字符串:“&”和“+”。
a. 使用“&”时必须注意与长整型的类型说明符区分,当在变量后使用连接符“&”时,必须用空格隔开。
b. “&”和“+”都可以用来连接两个字符串,结果仍为字符串类型,但“&”运算在连接前将两边的非字符串类型数据转换成字符串后再进行连接;而“+”作为连接符则要求两边都是字符串类型数据。
1.3. 程序结构与流程控制语句
1.3.1. 赋值语句
1.3.1.1. InputBox函数
变量=InputBox(Prompt,Title)
1.3.1.2. MsgBox函数
调用格式:
MsgBox(<提示信息>,[按钮图标类型],[信息框标题],[帮助文件名,帮助主题号])
按钮图标类型是由4个数值常量组成的式子,形式为c1+c2+c3+c4,数值常量的取 值和所代表的意义见下表:
c1的取值 |
VB中的内置常量名 |
意义 |
0 |
VbOkOnly |
只显示“确定”按钮 |
1 |
VbOkCancel |
显示“确定”和“取消”按钮 |
2 |
VbAbortRetryIgnore |
显示“终止”、“重试”和“忽略”按钮 |
3 |
VbYesNoCancel |
显示“是”、“否”和“取消”按钮 |
4 |
VbYesNo |
显示“是”和“否”按钮 |
5 |
VbRetryCancel |
显示“重试”和“取消”按钮 |
C2的取值 |
VB中的内置常量名 |
意义 |
16 |
VbCritical |
显示关键信息图标 |
32 |
VbQuestion |
显示警告疑问图标 |
48 |
VbExclamation |
显示警告信息图标 |
64 |
VbInformation |
显示通知信息图标 |
c3的取值 |
VB中的内置常量名 |
意义 |
0 |
VbDefaultButton1 |
第一个按钮为默认按钮 |
256 |
VbDefaultButton2 |
第二个按钮为默认按钮 |
512 |
VbDefaultButton3 |
第三个按钮为默认按钮 |
c4的取值 |
VB中的内置常量名 |
意义 |
0 |
VbApplictionModel |
应用程序模式,用户在当前应用程序继续执行之前,必须对信息框作出响应;信息框位于最前面 |
4096 |
VbSystemModel |
系统模式,所有应用程序均挂起,直到用户响应该信息框为止 |
1.3.2. 分支语句
1.3.2.1. If语句
If<条件1> Then
<语句1>
ElseIf <条件2> Then
<语句2>
……
Else
<语句n>
End If
1.3.2.2. Select Case语句
Select Case<条件表达式>
Case <表达式1>
<语句1>
Case <表达式2>
<语句2>
……
Case Else
<语句n>
End Select
*逻辑符号中:判断是等于是“=”,判断不等于是“<>”。
适当使用AndAlso和OrElse进行短路运算。
1.3.3. 循环语句
1.3.3.1. Do...Loop语句
Do While <条件表达式>
<语句>
Loop
或
Do Until <条件>
<语句>
Loop
1.3.3.2. Do...Loop While语句
Do
<语句>
Loop While <条件>
或
Do
<语句>
Loop Until <条件>
1.3.3.3. For...Next语句
For<循环变量>=初值 To 终值 [Step 步长]
<语句>
[Exit For]
<语句>
Next<循环变量>
*使用Exit For使循环结束。
在使用循环语句时,确保每个循环都有合法的推出条件。
1.4. 数组(实例:Array Class Sorts)
1.4.1. 一维数组
Dim ArrayName (Dim1Index,Dim2Index,…)As DataType
1.4.2. 多维数组
1.4.3. 动态数组
a. 在模块或过程中先定义不指明长度数组:<访问权限><数组名>()As<数据类型>
b. 在过程中用ReDim语句重新定义数组长度:ReDim <数组名>(维界表达式)
Preserve关键字用于重定义数组长度时保留数组中原有的数据。
1.4.4. 控件数组
1.4.5. 数组函数
1.4.5.1. LBound函数
返回数组的下限制,即最小索引值
1.4.5.2. Ubound函数
返回数组的上限值,即最大索引值
1.4.5.3. Erase语句
对于固定数组可以重新初始化各元素值为0,动态数组可以释放数组内存空间。
1.4.5.4. For Each…Next语句
用于数组或对象集合中元素重复执行循环语句,直到元素结束为止
For Each <变体变量> In <数组名>
语句组
[Exit For]
语句组
Next <变体变量>
2. VB错误处理
学会使用“自动窗口”、“监视窗口”、“可视化工具”、“即时窗口”和“命令窗口”。
如下时错误处理程序能够处理的部分问题:
问题 |
说明 |
网络/Internet问题 |
网络服务器、网络连接或其他设备意外失灵 |
数据库问题 |
不能连接数据库,无法查询或查询超时,数据库返回错误等 |
磁盘驱动器问题 |
未格式化或格式化不正确的磁盘,磁盘未正确插入,磁盘扇区损坏,磁盘已满,CD/DVD驱动器的问题等 |
路径问题 |
缺少所需文件的路径或路径不正确 |
打印机问题 |
打印机脱机、缺纸、内存不足或打印机不能使用 |
软件未安装 |
用户计算机没有安装应用程序所依赖的文件或组件,或者操作系统不兼容 |
安全性问题 |
程序或进程试图修改操作系统文件,连接不安全站点,或修改其他程序或文件 |
权限问题 |
用户没有实现某任务的适当权限 |
溢出错误 |
没能给某个活动分配足够的存储空间 |
内存不足错误 |
在Windows内存管理模式中应用程序或资源空间不足 |
剪贴板问题 |
数据传送或Windows剪贴板有问题 |
逻辑错误 |
未被编译器和之前的测试检测到的语法或逻辑错误(例如文件名拼写不正确) |
2.1. 三种错误类型
语法错误(编译器错误)、运行时错误和逻辑错误。
绿色锯齿线为警告,红色锯齿线为语法错误,蓝色锯齿线为编译器错误,紫色锯齿线为其他错误。
2.2. 使用Try…Catch错误处理程序处理运行时错误
Try
(可能产生错误的代码)
Catch
(一旦运行时错误发生就会被执行的语句)
Finally
不管错误是否发生都会被执行的语句(可选)
End Try
*Exit Try语句可以跳过所有不需要执行的Try或Catch语句块。
2.3. 较复杂的Try…Catch错误处理程序
引入Err对象,用于在Try…Catch代码块中识别并处理程序中特定的运行时错误。
如下是运行时错误消息列表:
错误编号 |
默认的错误消息 |
|
错误编号 |
默认的错误消息 |
5 |
过程调用或者参数无效 |
75 |
路径/文件访问错误 | |
6 |
溢出 |
76 |
路径为找到 | |
7 |
内存不足 |
91 |
未设置对象变量或With块变量 | |
9 |
下标超出范围 |
321 |
文件格式无效 | |
11 |
被零除 |
322 |
无法创建必需的临时文件 | |
13 |
类型不匹配 |
380 |
属性值无效 | |
48 |
加载DLL时出错 |
381 |
属性数组索引无效 | |
51 |
内部错误 |
422 |
未找到属性 | |
52 |
文件名或编号错误 |
423 |
未找到属性或方法 | |
53 |
未找到文件 |
424 |
需要对象 | |
55 |
文件已打开 |
429 |
无法创建ActiveX组件 | |
57 |
设备I/O错误 |
430 |
类不支持自动化或不支持所需的界面 | |
58 |
文件已存在 |
438 |
对象不支持此属性或方法 | |
61 |
磁盘已满 |
440 |
自动化错误 | |
62 |
输入超出文件尾 |
460 |
剪贴板格式无效 | |
67 |
文件太多 |
461 |
未找到方法或数据成员 | |
68 |
设备不可用 |
462 |
远程服务器计算机不存在或不可用 | |
70 |
权限被拒绝 |
463 |
未在本地计算机注册类 | |
71 |
磁盘未准备好 |
481 |
图片无效 | |
74 |
无法用不同的驱动器重命名 |
482 |
打印机错误 |
2.3.1. 生成自定义错误
Try
Err.Raise(61)
Catch When Err.Number = 61
MsgBox(”Error:Disc is full)
End Try
2.3.2. 指定重试次数
Dim Retries As Short = 0
Try
PictureBox1.Image = System.Drawing.BitMap.FromFile(”URL”)
Catch
Retries += 1
If Retries <= 2 Then
MsgBox(“~”)
Else
MsgBox(”~”)
Button1.Enabled = False
End If
End Try
2.3.3. 使用嵌套的Try…Catch语句块
Try
PictrueBox1.Image = System.Drawing.BitMap(”~”)
Catch
MsgBox(”~”)
Try
PictureBox1.Image = System.Drawing.BitMap(”~”)
Catch
MsgBox(”~”)
Button1.Enabled = False
End Try
End Try
2.4. 防错编程(defensive programming)
If File.Exists(”~”)Then
PictureBox1.Image = System.Drawing.BitMap(”~”)
Else
MsgBox(”~”)
End If
3. 模块(实例:My Text Box Sub)
3.1. 使用模块
要使一个项目中的所有窗体和事件过程共享某些变量和过程,可以在一个和多个万块中对这些变量和过程进行声明。
3.2. 创建过程
函数过程:从事件过程或其他过程按名称调用,以函数名返回值
子过程:从事件过程或其他过程名称调用,一般用于接收或处理输入内容、显示输出信息或设置属性,以参数列表的形势返回修改后的值。
通用过程:用在各种编程背景中,具有很高的灵活性和可用性的代码块。
通用过程的优点:
a. 能够将经常使用的程序语句组与所熟悉的名称联系起来。
b. 消除重复的语句行。可以只定义一次过程而在程序中调用该过程任意次。
c. 使程序更易阅读。将大程序拆分成很多小程序段。
d. 简化程序开发过程。
e. 其他项目和解决方案可以重复使用该通用过程。
f. 扩展Visual Basic语言。通常能实现单个Visual Basic关键字和.NET Framework方法无法完成的任务。
3.2.1. 函数过程定义
Function FunctionName ([Arguments])As Type
Function statements
[Return value]
End Function
3.2.2. 子过程定义
Sub ProcedureName ([Arguments])
Procedure statements
End Sub
*传值调用:ByVal;传引用调用ByRef
4. 使用集合和System.Collections命名空间(实例:My URL Collections、236)
4.1. Controls集合的基本用法
4.1.1. 引用集合中的对象:利用索引,按照创建对象的相反顺序在集合中存储对象
4.1.2. 编写For Each…Next循环结构
Dim CtrlVar As Control
…
For Each CtrlVar In Controls
process object
Next CtrlVar
4.1.3. 在For Each…Next循环结构中使用Name属性
4.2. 创建自己的集合:可以用来在程序运行期间存储数值或字符串
4.3. VBA(Visual Basic for Application)集合简要介绍
5. 处理文本文件和字符串(实例:TextBrower、QuickNote、Sort Text)
5.1. 用文本框对象显示文本文件
5.2. 使用StreamReader类和My.Computer.FileSystem打开文本文件
5.2.1. Dim StreamToDisplay As StreamReader
StreamToDisplay = New StreamReader(”~”)
TextBox1.Text = StreamToDisplay.ReadToEnd
StreamToDisplay.Close()
TextBox1.Select(0,0)
5.2.2. Dim AllText As String
OpenFileDialog1.Filter = “~”
OpenFileDialog1.ShowDialog()
If OpenFileDialog1.FileName<> “” Then
AllText1 = My.Computer.FileSystem.ReadAllText(OpenFileDialog1.FileName)
txtNote.Text = AllText
附上My命名空间的分类表如下:
对象 |
说明 |
My.Application |
有关当前应用程序的信息,包括题目、目录和版本号 |
My.Computer |
有关当前(本地)计算机硬件、软件和文件的信息。包括My.Computer.FileSystem,可以利用它打开系统文本文件和编码文件 |
My.Forms |
当前Visual Sudio项目中的窗体信息。 |
My.Resources |
应用程序资源的相关信息(只读)。允许用户动态获取应用程序的资源。 |
My.Settings |
应用程序设置的相关信息。允许用户动态存储和获取属性设置及应用程序的其他信息 |
My.User |
当前在My.Computer上激活的用户的信息 |
My.WebServices |
My.Computer上激活的Web服务信息。也可用于访问新的Web服务 |
5.3. 磁盘上创建新文件
5.4. 使用程序代码处理文本字符串
6. 窗体和基本控件
1.1. 窗体的常用属性
1.1.1. BorderStyle:用于设置或返回(也称引用)窗体的边框样式,有0到5六个取值(默认值为2),如下表:
设定值 |
边框样式说明 |
0 |
窗体无外框 |
1 |
单线外框,运行时窗口大小不可改变 |
2 |
(默认值)双线外框,运行时可改变窗口大小 |
3 |
双线外框,运行时窗口大小不可改变 |
4 |
包含一个关闭按钮,标题栏字体缩小,窗口大小不可改变 |
5 |
包含一个关闭按钮,标题栏字体缩小,窗口大小可改变 |
1.2. 一些VB常用控件
1.2.1. 标签控件(Label)’
Refresh:调用该方法,标签对象中将显示最新的Caption属性值,也称刷新方法。
1.2.2. 文本框控件(TextBox)
1.2.2.1. 常用属性
ScrollBars:用于设置文本框是否带有滚动条。默认值为0,表示无滚动条;若设置为1,表示有水平滚动条;若设置为2,表示有垂直滚动条;若为3,表示水平与垂直滚动条两者都有。本属性只有在MultiLine属性为True时才有效。
Alignment:用于设置文本框中文本的对齐方式。默认值为0,表示文本左对齐;若为1,表示文本右对齐;若为2,则文本居中。
Locked:用于设置文本框是否锁定。若为True,则文本框不可编辑。
Selstart:用于设置或返回在文本框中所选文本的起始点。
SelLength:用于设置或返回在文本框中所选文本的字符数。
SelText:用于设置或返回在文本框中所选的文本内容。
1.2.2.2. 常用方法
SetFocus:指定文本框为焦点。例如,当一个文本框输入结束,用户希望通过按回车键将光标移到下一个文本框中,可以执行如下代码:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text2.SetFocus
End If
End Sub
1.2.3. 命令按钮控件(CommandButton)
常用属性:
Cancle:用于设置单击命令按钮和按下键盘上的“Esc”按键是否等效。一个界面上通常只将一个命令按钮的Cancel属性设为True。
Default:用于设置单击命令按钮和按下键盘上的“Enter”按键是否等效。一个界面上通常只将一个命令按钮的Default属性设为True。
Enabled:用于设置命令按钮是否有效,即是否可以被操作。
1.2.4. 列表框控件(ListBox)
1.2.4.1. 常用属性
Clear:程序运行时动态删除列表框中的所有列表项。<对象名>.Clear
ListCount:用于返回列表框中列表项的数目。
ListIndex:程序运行中,在列表框中选中的某个列表项的序号。使用格式是
<对象名>.List(<对象名>.ListIndex)
Text:程序运行时,在列表框中选中的列表项的文本内容。
Columns:用于设置列表框中显示形式。属性值为非负数。
Sorted:设置列表项是否排序。若为True,各列表项将按ASCII码排序。
Selected:用于判断某一个列表项是否被选中。
1.2.4.2. 常用方法
AddItem:程序运行时动态地向列表框中添加列表项。<对象名>.Items.Add(”~”),插入序号
RemoveItem:程序运行时动态地删除某个列表项。<对象名>.Items.Remove(”~”) 列表项序号
1.2.5. 组合框控件(ComboBox)
Style:用于设置组合框的外观,可取0、1、2,默认值为0。
1.2.6. 图像控件(Image)
1.2.7. 图片框控件(PictureBox)
<控件名>.Image = System.Drawing.Image.FromFile(”URL”)
1.2.8. 单选按钮控件(OptionButton)、复选框(CheckBox)和框架控件(Frame)
1.2.9. 滚动条控件(HscrollBar和VscrollBar)
LargeChange:用于设置程序运行时,鼠标单击滚动框一次,Value属性值的改变量。
1.3. VB特殊控件
1.3.1. DateTimePicker控件:创建一个时间选择框
1.3.2. LinkLabel
改变链接的颜色:LinkVisited = True
打开默认浏览器:
System.Diaanostics.Process.Start(”~”)或(”指定浏览器”,”文件或网址URL”)
1.3.3. MenuStrip控件:添加菜单
为菜单指定快捷键:设置属性值ShortCutKeys
1.3.4. ToolStrip控件:添加工具栏
下面时8个标准对话框控件
1.3.4.1. OpenFileDialog:获得现有文件的路径,以便打开文件
OpenFileDialog1.Filter = “Bitmaps (*.bmp)|*.bmp”
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
PictureBox1.Image = System.Drawing.Image.FromFile(OpenFileDialog1.FileName)
End If
1.3.4.2. SaveFileDialog:获得用于保存新文件的路径
1.3.4.3. FontDialog:允许用户选择新的字体和风格
1.3.4.4. ColorDialog:允许用户从调色板上选择颜色
最常用的ColorDialog控件属性:
属性 |
含义 |
AllowFullOpen |
设为True时,对话框中的【规定自定义颜色可用】 |
AnyColor |
设为True时,用户能够选择显示在对话框中的任意颜色 |
FullOpen |
设为True时,在对话框第1次打开时会显示【自定义颜色】区域 |
ShowHelp |
设为True会使对话框中的【帮助】按钮有效 |
SolidColorOnly |
设为True时,允许用户选择纯色(由不同颜色的像素组成的抖动色被禁止) |
1.3.4.5. FolderBrowerDialog:允许用户浏览计算机上的文件夹
1.3.4.6. PrintDialog:允许用户设置打印机选项
1.3.4.7. PrintPreviewDialog:像在Microsoft Word中那样显示一个打印预览对话框
1.3.4.8. PageSetupDialog:允许用户控制页面设置,例如页边距、页面尺寸等
1.3.5. RichTextBox控件:显示和操作文本,与TextBox控件类似
控件的常用事件:
SelectedIndexChanged
MouseHover
1.3.6. MaskedTextBox控件:类似TextBox控件,使用时可以控制用户输入程序信息的格式。
1.3.7. Timer控件:按照指定时间间隔重复执行某个事件过程
1.3.8. ProgressBar控件:进度条控件,用于显示计算进度
1.3.9. OpenFileDialog控件:提示用户指定一个文件的路径
属性:
Filter:用于控制显示的文件类型
ShowDialog:用于显示【打开】对话框
FileName:返回由用户指定的文件路径
7. 设计用户界面
7.1. 在运行时管理Windows窗体和控件(实例:Display Date、My Anchor and Dock)
7.1.1. 向程序中添加新窗体和多个窗体间切换
每个窗体都被看做一个从System.Windows.Forms.Form类继承了自身性能的对象。在屏幕上显示时必须处理的窗体称为对话框,也称为有模式窗体(modal form),它会在屏幕中始终保持为活动窗口,直至用户单击按钮将其进行分配。将已有的窗体显示为对话框,使用ShowDialog方法打开。通过切换离开所显示的窗体,使用Show方法。非活动的窗体称为非模式(non-modal)窗体或无模式(modeless)窗体。
Dialog.OK是一个常量,提示对话框已经关闭,并向调用过程返回一个值“OK”。借助于并行的按钮事件过程(例如DialogResult.Cancel、DialogResult.No、DialogResult.Yes、DialogResult.Abort)可以创建一个更为复杂的对话框,从而返回更多的值。如果已经设置了DialogResult属性,窗体将自动关闭。
7.1.2. 调整窗体在Windows桌面上的位置
7.1.2.1. DesktopBounds属性:取四个坐标值确定窗体的大小和位置
Dim FormRect As New Rectangle(200,100,300,250)
form.DesktopBounds = FormRect
7.1.2.2. StartPosition属性:
Manual(手动设置,由Location决定)、CenterScreen(屏幕中央)、WindowsDefaultLocation(Windows默认位置)、WindowsDefaultBounds(Windows默认边界)或者CenterParent(父窗体中央,在多文档界面MDI应用程序中特别有用)
窗体中最大化与最小化:
<FormName>.MaximizeBox = True ‘确定窗体上有最大化按钮
<FormName>.MinimizeBox = True ‘确定窗体上有最小化按钮
<FormName>.WindowState = FormWindowState.Minimized ‘使窗体最小化
控制窗体的最大或最小尺寸:
Dim FormSize As New Size(400,300)
<FormName>.MaximumSize = FormSize
7.1.3. 运行时向窗体中添加控件
a. 声明新窗体好控件对象 Dim <ObjectName> As New Object
b. 设置标签属性 lblDate.Location = New Point(80,50)
c. 设置按钮属性 btnCancel.Text = “Cancel”
d. 设置窗体属性 <FormName>.CancelButton = btnCancel
e. 向Controls集合中添加新对象 <FormName>.Controls.Add(lblDate)
f. 将窗体显示成对话框形式 <FormName>.ShowDialog()
7.1.4. 窗体上排列控件
Anchor(锚定):强迫窗体上的对象与窗体的某个特定边缘保持固定距离
Dock(停靠):强迫对象与窗体边缘保持接触
7.1.5. 指定启动对象
应用程序→启动窗体
7.2. 添加图形好动画效果(示例:My Draw Shapes、My Moving Icon)
7.2.1. 使用System.Drawing命名空间添加图形
窗体的左上角是坐标系统的起始点(即原点)。默认的坐标系统由与硬件设备无关的图片元素(即像素)的行与列组成,它代表最小的点,用于在窗体上定位。
System.Drawing.Graphics类(提供了在窗体上绘制形状的方法和属性)的基本图形与创建方法如下表:
图形 |
方法 |
描述 |
直线 |
DrawLine |
具有两个端点的直线 |
矩形 |
DrawRectangle |
具有四个端点的矩形或者正方形 |
弧形 |
DrawArc |
具有两个端点的曲线(椭圆的一部分) |
圆/椭圆 |
DrawEllipse |
受矩形“束缚”的椭圆形 |
多边形 |
DrawPolygon |
具有多个点好多条边(存储在一个数组中)的复杂形状 |
曲线 |
DrawCurve |
经过多个点(存储在一个数组中)的弯曲的线段;称为基数样条的复杂曲线也使用此方法绘制 |
Bezier线条 |
DrawBezier |
用4个点(第2个点和第3个点时“控制”点)绘制的曲线 |
绘制自动填充颜色的形状的方法通常都有Fill前缀,如FillRectangle、FillEllipse好FillPolygon。
Dim GraphicsFun As System.Drawing.Graphics ‘先创建Graphics对象
‘Pen对象作为一个参数传递给无填充色的方法
Dim PenColor As New System.Drawing.Pen(System.Drawing.Color.Red)
‘Brush在需要颜色填充时作为参数传递
Dim BrushColor As New SolidBrush(Color.Green)
GraphicsFun = Me.CreateGraphics
GraphicsFun.DrawLine(Pencolor,20,30,100,80)
GraphicsFun.FillRectangle(BrushColor,150,10,250,100)
*将上述代码加入窗体的Paint事件中能够使每次刷新窗体的时候都显示效果。
7.2.2. 为程序添加动画效果
在窗体上移动对象的方法和属性如下
关键字 |
描述 |
Left |
用于水平移动(左或右)对象的属性 |
Top |
用于垂直移动(上或下)对象的属性 |
Location |
将对象移动到特定位置的属性 |
SetBounds |
设置对象的边界以达到特定的位置好尺寸的方法 |
object.Left = horizontal
object.top = vertical
object.Location = New Point(horizontal, vertical)
*利用计时器对象创建动画
7.2.3. 在程序运行时缩放对象
程序运行中动态地设置对象的Height和Width属性来缩放对象。
7.2.4. 改变窗体透明度
设置窗体Opacity属性(0~1)
7.3. 继承窗体好创建基类(My Person Class)
*语言集成查询(Language Integrated Query,LINQ)、匿名类型、扩展方法和Lambda表达式。
7.3.1. 利用继承选择器继承窗体
7.3.2. 创建自定义基类
a. 声明类变量 Private strName As String
b. 创建属性
Public Property FirstName() As String
Get
Return strName
End Get
Set(ByVal Value As String)
strName = Value
End Set
End Property
c. 创建方法
Public Function FunctionName([Arguments])As ReturnType
Function statements
[Return value]
End Function
7.3.3. 继承基类
使用Inherits关键字。
8. 附录:一些Visual Basic自带常用函数
8.1. 算术函数
函数名 |
函数作用 |
备注 |
Sign(x) |
符号函数 |
当x>0返回1;x=0返回0;x<0返回-1 |
Rnd(x) |
产生随机数 |
产生一个在(0,1)区间均匀分布的随机数;若x=0,则给出的是上一次利用本函数产生的随机数 |
Hex[$](x) |
求x的十六进制数值 |
|
Oct[$](x) |
求x的八进制数值 |
|
*其余基本函数未列出 |
8.2. 字符串函数
.NET Framework方法 |
Visual Basic函数 |
说明 |
.NET Framework 示例 |
ToUpper |
UCase |
将字符串中的字母变成大写 |
|
ToLower |
LCase |
将字符串中的字母变成小写 |
|
Length |
Len |
确定字符串中的字符数 |
|
Substring |
Mid |
从某一指定起点开始返回字符串中指定个数的字符 |
|
IndexOf |
InStr |
从一个较长的字符串中查找另一个字符串的起始点 |
|
Trim |
Trim |
删除字符串中开头和末尾的空格 |
|
Remove |
|
从字符串中间删除字符 |
|
Insert |
|
在字符串中间添加字符 |
|
StrComp |
|
比较字符串并忽略大小写区别 |
|
8.3. 转换函数
函数名 |
函数作用 |
Str[$](x) |
将数据类型x转换成字符串(含符号位) |
Val(x) |
将字符串x中的数字转换成数值 |
Chr[$](x) |
返回以x位ASCII码的字符 |
Asc(x) |
给出字符x的ASCII码 |
Int(x) |
取小于或等于x的最大整数 |
Round(x) |
将数值x四舍五入取整 |
Fix(x) |
将数值x的小数部分射去 |
*回车元素Chr(13),换行元素Chr(10),Beep()扬声器快速响铃一次
8.4. 日期与时间函数
函数名 |
函数作用 | |
DateString |
返回系统时钟的当前日期 | |
TimeString |
返回系统时钟的当前时间 | |
Now |
返回系统当前日期和时间的编码值。该属性经常用作其他系统时钟函数的参数 | |
Year(date) |
该函数返回指定日期/时间的年份 | |
Month(date) |
该函数返回一个代表月份的整数(1~12) | |
Day(date) |
返回1到31之间的一个整数 | |
Hour(date) |
该函数返回指定日期/时间的小时部分(0~23) | |
Minute(date) |
该函数返回指定日期/时间的分钟部分(0~59) |
|
Second(date) |
该函数返回指定日期/时间的秒部分(0~59) |
|
Weekday(date) |
返回一个有效日期为一个星期中的第几天,参数c用于设置星期几位一个星期的第一天,如省略,则默认星期天为一个星期的第一天,x应是一个有效数据 |
|
8.5. 格式化函数
Format(<算术表达式>,fmt$)其中:fmt$为格式控制符,可分为:
a. 数位控制符:“#”、“0”、“%”
b. 标点控制符:“.”、“,”
c. 指数输出控制符:“E+”和“E”