1

【笔记】VB的数组

 1 year ago
source link: https://feiju12138.github.io/2022/06/29/VB%E7%9A%84%E6%95%B0%E7%BB%84/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【笔记】VB的数组

2022-06-292022-07-01Visual Basic学习指北

VB的数组学习笔记

静态数组的声明

定义数组的个数

一次定义一个数组
Dim 数组名(...)
一次定义多个数组
Dim 数组名(...), 数组名(...)

指定数据类型的方式

不指定数据类型
  • 不指定数据类型,默认为变体型
Dim 数组名(...)
直接指定数据类型
Dim 数组名(...) As 数据类型
通过类型标识符定义数据类型
Dim 数组名类型标识符(...)

指定数组长度的方式

指定开始索引和结束索引
Dim 数组名(索引最小值 To 索引最大值)
仅指定结束索引
  • 没有指定开始索引时,默认开始索引为0
Dim 数组名(索引最大值)
统一指定所有区间的最小值
  • 使用Option Base关键字指定的下标起始值,如果定义多维数组,对每维数组都有效
Option Base 最小索引
Dim 数组名(索引最大值)

动态数组的声明

  • 声明数组时(Dim)动态数组未分配存储空间,不能引用
  • 重新声明数组后(ReDim),才能确定其维数和大小,此时才分配存储空间
    • 可以多次重新声明数组,多次改变动态数组的长度和维数,但是不能改变数组的数据类型

指定数据类型的方式

不指定数据类型
' 定义动态数组
Dim 数组名()

' 定义/改变数组的长度
ReDim 数组名(索引最小值 To 索引最大值)
ReDim 数组名(索引最大值)

' 定义/改变数组的维数
ReDim 数组名(一维数组的下标定义, 二位数组的下标定义, ...)
直接指定数据类型
' 定义动态数组
Dim 数组名() As 数据类型

' 定义/改变数组的长度
ReDim 数组名(索引最小值 To 索引最大值) As 数据类型
ReDim 数组名(索引最大值) As 数据类型

' 定义/改变数组的维数
ReDim 数组名(一维数组的下标定义, 二位数组的下标定义, ...) As 数据类型
通过类型标识符定义数据类型
' 定义动态数组
Dim 数组名类型标识符()

' 定义/改变数组的长度
ReDim 数组名类型标识符(索引最小值 To 索引最大值)
ReDim 数组名类型标识符(索引最大值)

' 定义/改变数组的维数
ReDim 数组名类型标识符(一维数组的下标定义, 二位数组的下标定义, ...)

关于数据的保存

  • 重新声明数组后(ReDim),所有的数据都会被清空,如果不希望数据被清空,可以使用关键字Preserve
' 定义动态数组
Dim 数组名()

' 定义/改变数组的长度
ReDim 数组名(索引最小值 To 索引最大值)
ReDim 数组名(索引最大值)

关于维数的修改

  • 重新声明数组时(ReDim),如果修改的原数组是多维数组,只能修改最后一维的下标索引最小值,并且不能修改数组的维数
' 定义动态数组
Dim 数组名(一维数组的下标定义, 二位数组的下标定义)

' 定义/改变数组的维数
ReDim 数组名(一维数组的下标定义, 二位数组的下标定义)

数组中元素的赋值

为指定下标的元素赋值

数组名(下标) = 值

通过Array函数为所有元素赋值

  • 通过Array()函数,可以在编译阶段为数组赋值,因此无需占用运行时间,可以提高程序执行的效率
数组名 = Array(值1, 值2, ...)
为动态数组赋值
数组名() = Array(值1, 值2, ...)

通过字符串分割为所有元素赋值

数组名 = Split(字符串, 分隔符)

数组中元素值的获取

数组名(下标)

数组的声明

Dim 数组名(一维数组的下标定义, 二位数组的下标定义, ...)

数组中元素的赋值

数组名(一维数组的下标, 二维数组的下标, ...) = 值

数组中元素值的获取

获取数组中元素的值

数组名(一维数组的下标, 二维数组的下标, ...)

获取数组的下标最小值和最大值

获取数组的下标最小值

维数:从1开始

LBound(数组名)

LBound(数组名, 维数)

获取数组的下标最大值

UBound(数组名)

UBound(数组名, 维数)

For循环

For i = LBound(数组名) To UBound(数组名)
...
Next i

For…Each循环

  • For…Each循环会从数组下标为0开始遍历
For Each i In 数组名
...
Next i
  • 控件数组中的所有元素都必须是相同类型的控件
  • 控件数组中的控件具有一个相同的控件名称
  • 控件数组中的控件除了名称属性值外,其他属性可以不相同
  • 控件数组中的元素是通过控件的Index属性进行区分的,取值范围为:0~32767
  • 控件数组元素的下标可以不连续
  • 控件数组中的所有控件共用相同的事件,控件数组的事件过程名后的一对括号内有一个参数Index,用来确定是哪一个控件发生了该事件

创建控件数组

  • 通过复制粘贴控件的方式

第创建第一个控件时,其Index属性值为空
当粘贴了一个控件后
粘贴前的控件Index属性值为0
粘贴后的控件Index属性值为1
其后粘贴的控件Index依次+1

  • 创建第二个相同类型的控件时,指定与第一个控件相同的控件名称
  • 创建控件时,修改Index属性

添加和删除数组中的元素

  • 向已有的控件数组中添加一个元素

在使用Load()方法之前,需要在设计模式下创建控件数组
使用Load()方法添加的元素,默认是不可见的,Visible属性的值默认为False,需要手动改为True才能显示出来
添加后的元素需要设置Left属性和Top属性来修改元素在窗体上的位置

Load 控件数组名(下标)
  • 从已有的控件数组中删除一个元素

只能删除用Load()方法添加的控件,不能删除通过设计模式添加的控件

UnLoad 控件数组名(下标)

哔哩哔哩——教达优


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK