vb.net二维动态数组 vb动态数组和静态数组

VB.NET 用二维数组的方式动态加控制 例如在窗体上动态添加GroupBox,然后再在GroupBox里动态添加控件

下面这段代码完成,在窗体上用语句添加2个 GroupBox控件,且在每个GroupBox控件中添加4个 RadioButton 控件。

创新互联建站专注于富川企业网站建设,响应式网站,商城系统网站开发。富川网站建设公司,为富川等地区提供建站服务。全流程按需定制开发,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim i As Integer

'添加2个GroupBox

Dim MyGroupBox(2) As GroupBox

For i = 1 To 2

'将一个GroupBox控件加入到Form上

MyGroupBox(i) = New GroupBox

Me.Controls.Add(MyGroupBox(i))

'设置该GroupBox控件的属性

MyGroupBox(i).Height = 240

MyGroupBox(i).Width = 600

MyGroupBox(i).Top = (i - 1) * (240 + 20) + 20

MyGroupBox(i).Left = 20

'修改新加入控件的Text值

MyGroupBox(i).Text = "GroupBox" CStr(i)

Next

'每个GroupBox中添加4个单选按钮

Dim MyRadioButton1(4) As RadioButton

Dim MyRadioButton2(4) As RadioButton

For i = 1 To 4

MyRadioButton1(i) = New RadioButton

Me.Controls.Add(MyRadioButton1(i))

MyRadioButton1(i).Parent = MyGroupBox(1)

'设置该GroupBox控件的属性

MyRadioButton1(i).Height = 20

MyRadioButton1(i).Width = 120

MyRadioButton1(i).Top = (i - 1) * (20 + 20) + 40

MyRadioButton1(i).Left = 20

'修改新加入控件的Text值

MyRadioButton1(i).Text = "RadioButton1_" CStr(i)

Next

For i = 1 To 4

MyRadioButton2(i) = New RadioButton

Me.Controls.Add(MyRadioButton2(i))

MyRadioButton2(i).Parent = MyGroupBox(2)

'设置该GroupBox控件的属性

MyRadioButton2(i).Height = 20

MyRadioButton2(i).Width = 120

MyRadioButton2(i).Top = (i - 1) * (20 + 20) + 40

MyRadioButton2(i).Left = 20

'修改新加入控件的Text值

MyRadioButton2(i).Text = "RadioButton2_" CStr(i)

Next

End Sub

VB 中定义二维动态数组的方法

ReDim 语句支持这样的语法,它与固定数组中使用的语法相同。对于每一维数,每个 ReDim 语句都能改变元素数目以及上下界。但是,数组的维数不能改变。

ReDim DynArray (4 to 12)

例如,用第一次声明在模块级所建立的动态数组 Matrix1:

Dim Matrix1 () As Integer

然后,在过程中给数组分配空间:

Sub CalcValuesNow ()

.

.

.

ReDim Matrix1 (19, 29)

End Sub

这里的 ReDim 语句给 Matrix 分配一个 20 × 30 的整数矩阵(元素总大小为 600)。

VB.NET 二维数组问题

根据你的语句,上下标是确定的,所以定义语句修改为:

Dim ary(UBound(temp), 1) As String '声明二维数组

VB.NET 动态二维数组如何循环赋值和取值

for i =0 to ...

for j =0 to ...

keyarray(i,j)=

next

next

双重循环,赋值和读取一样

vb 定义二维动态数组为什么会下标越界

1.ReDim 语句用来定义或重定义原来已经用带空圆括号(没有维数下标)的 Private、Public 或 Dim 语句声明过的动态数组的大小。

2.可以使用 ReDim 语句反复地改变数组的元素以及维数的数目,但是不能在将一个数组定义为某种数据类型之后,再使用 ReDim 将该数组改为其它数据类型,除非是 Variant 所包含的数组。如果该数组确实是包含在某个 Variant 中,且没有使用 Preserve 关键字,则可以使用 As type 子句来改变其元素的类型,但在使用了此关键字的情况下,是不允许改变任何数据类型的。

3.如果使用了 Preserve 关键字,就只能重定义数组最末维的大小,且根本不能改变维数的数目。例如,如果数组就是一维的,则可以重定义该维的大小,因为它是最末维,也是仅有的一维。不过,如果数组是二维或更多维时,则只有改变其最末维才能同时仍保留数组中的内容。下面的示例介绍了如何在为已有的动态数组增加其最末维大小的同时而不清除其中所含的任何数据。

ReDim X(10, 10, 10)

. . .

ReDim Preserve X(10, 10, 15)

同样地,在使用 Preserve 时,只能通过改变上界来改变数组的大小;改变下界则会导致错误。

4.如果将数组改小,则被删除的元素中的数据就会丢失。如果按地址将数组传递给某个过程,那么不要在该过程内重定义该数组的各维的大小。

5.在初始化变量时,数值变量被初始化为 0,变长的字符串被初始化为一个零长度的字符串 (""),而定长的字符串则用 0 填充。Variant 变量被初始化为 Empty。用户自定义类型的变量的每个元素作为各自独立的变量进行初始化。在使用引用对象的变量之前,必须使用 Set 语句将一个已有的对象赋给该变量。在被赋值之前,所声明的对象变量有一个特定值 Nothing,这个值表示该变量没有指向任何对象的实例。

6.小心 如果 ReDim 语句所使用的变量在模块级别或过程级别不存在,则该语句就相当于一个声明语句。如果此后在一个更广的范围内又创建了同名的变量,即使使用了 Option Explicit,ReDim 也将使用后声明的这个变量,且不会导致编译错误。为了避免这种冲突,就不应把 ReDim 作为声明语句使用,而只应作为重定义数组大小的语句。

7.注意 要改变 Variant 所包含的数组的大小,必须在试图改变其数组大小之前显式声明该 Variant 变量。

求助:vb.net二维数组如何转为C++/CLI二维数组? 描述:一维及多维数组的内置

先定义一个动态数组

dim a() as integer

再定义二维数组

m=inputbox("二维数组有几行")

n=inputbox("二维数组有几列")

redim a(1 to m, 1 to n)

然后赋值

转变为一维数组:

redim a(m*n) as integer

for j = 1 to m

for k= 1 to n

a((j-1)*n+k) = a(j, k)

next k

next j

不确定对不对……你试一下看看是不是可以帮到你


网站题目:vb.net二维动态数组 vb动态数组和静态数组
URL标题:http://hbruida.cn/article/hjhjho.html