vb中,不同窗体之间是否可以相互访问

同一个程序之间,From1可不可以访问From2内的内容。
我在From2中设计一个2维动态数组,可以添加和删除其中内容,需要在From1中进行访问。
哪位大神可以指导指导啊?!!
拜谢!!

新手,望谅解,没有财富啊!!!

在全局定义。得在一个模块module里定义。

Public a(3, 3) As Integer

Global b(3, 2) As Integer

按照变量的作用域可将变量划分为全局变量、模块级变量、过程级变量。

msdn中的解释如下:

如果有过用其它语言编程的经历,那么想必会熟悉数组的概念。由于有了数组,可以用相同名字引用一系列变量,并用数字(索引)来识别它们。在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。数组有上界和下界,数组的元素在上下界内是连续的。因为 Visual Basic对每一个索引值都分配空间,所以不要不切实际声明一个太大的数组。

注意 这一部分讨论的数组是程序中声明的变量数组。它们不同于控件数组,控件数组是在设计时通过设置控件的 Index 属性规定的。变量数组总是连续的;与控件数组不同的是,不能从一个数组的中部加载或卸载数组元素。

一个数组中的所有元素具有相同的数据类型。当然,当数据类型为 Variant 时,各个元素能够包含不同种类的数据(对象、 字符串 、数值等等)。 可以声明任何基本数据类型的数组,包括用户自定义类型(请参阅 “再论编程”中的“创建自己的数据类型”)和对象变量(请参阅“用对象编程”)。

在 Visual Basic 中有两种类型的数组:固定大小的数组— 它总是保持同样的大小,以及在运行时大小可以改变的动态数组。在本章后面的“动态数组”中将要详细讨论动态数组。

声明固定大小的数组

有三种方法声明固定大小的数组,用哪一种方法取决于数组应有的有效范围: 

建立公用数组,在模块的声明段用 Public 语句声明数组。

建立模块级数组,在模块的声明段用 Private 语句声明数组。

建立局部数组,在过程中用 Private 语句声明数组。 

设定上下界

声明数组时,在数组名之后跟一个用括号括起来的上界。上界不得超过 Long 数据类型的范围(-2,147,483,648 到 2,147,483,647)。例如,下列数组声明可出现在模块的声明段:

Dim Counters (14) As Integer         '15 个元素。

Dim Sums (20) As Double            '21 个元素。

为建立公用数组,直接用 Public 取代 Dim。

Public Counters (14) As Integer

Public Sums (20) As Double

在过程之中同样的声明使用 Dim:

Dim Counters (14) As Integer

Dim Sums (20) As Double

第一个声明建立了一个有 15 个元素的数组,其索引号从 0 到 14 。第二个声明建立了一个有 21 个元素的数组,其索引号从 0 到 20 。缺省的下界为 0。

为了规定下界,用关键字 To 显式提供下界(为 Long 数据类型):

Dim Counters (1 To 15) As Integer

Dim Sums (100 To 120) As String

在前述声明中,Counters 的索引值范围从 1 到 15,而 Sums 的索引值范围从 100 到 200。

包含其它数组的数组

有可能建立 Variant 数据类型数组,并与不同数据类型的数组共居一处。以下代码建立两个数组,一个包含整数,而另一个包含 字符串。然后声明第三个 Variant 数组,并将整数和字符串数组放置其中:

Private Sub Command1_Click ()

   Dim intX As Integer   '声明计数器变量。

   '声明并放置整数数组。

   Dim countersA (5) As Integer

      For intX = 0 To 4

         countersA (intX) = 5

      Next intX

   '声明并放置字符串数组。

      Dim countersB (5) As String

         For intX = 0 To 4

            countersB (intX) = "hello"

         Next intX

   Dim arrX (2) As Variant         '声明拥有两个成员的新数组。

      arrX (1) = countersA ()      '将其它数组移居到数组。

      arrX (2) = countersB ()

      MsgBox arrX (1) (2)         '显示每一个数组的成员。

      MsgBox arrX (2) (3)

End Sub

多维数组

有时需要追踪记录数组中的相关信息。例如,为了追踪记录计算机屏幕上的每一个像素,需要引用它的 X、Y 坐标。这时应该用多维数组存储值。

可用 Visual Basic 声明多维数组。例如,下面的语句声明了一个过程内的 10 × 10 的二维数组。

Static MatrixA (9, 9) As Double

可用显式下界来声明两个维数或两个维数中的任何一个:

Static MatrixA (1 To 10, 1 To 10) As Double

可以将所有这些推广到二维以上的数组。例如:

Dim MultiD (3, 1 To 10, 1 To 15)

这个声明建立了三维数组,大小为 4 × 10 × 15。元素总数为三个维数的乘积,为 600。

注意 在增加数组的维数时,数组所占的存储空间会大幅度增加,所以要慎用多维数组。使用 Variant 数组时更要格外小心,因为他们需要更大的存储空间。 

用循环操作数组

可以用 For 循环嵌套有效的处理多维数组。例如,在 MatrixA 中基于每个元素在数组中的位置为其赋值:

Dim I As Integer, J As Integer

Static MatrixA(1 To 10, 1 To 10) As Double

For I = 1 To 10

   For J = 1 To 10

      MatrixA (I, J) = I * 10 + J

   Next J

Next I

详细信息 关于循环的详细信息,请参阅本章后面的“循环结构”部分。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-27
form1:
dim qq(10)

form2:
msgbox form1.qq(1)
第2个回答  2010-05-27
在模块中定义一个全局变量
public a[][] as string

这样在窗体之间是可以互相传值的,例如在FORM1中a[1][1]=4,在FORM2中用a[1][1]的话等于4