将数组在module中定义成Public,窗体form1/form2间值的传递能实现,但在form2中好像是不是修改不了从form1中传过来的值啊。问题是如何将传过来的值修改啊(不是简单的重新将form1的数组在form2中重定义、赋值)?

解决方案 »

  1.   

    如果是在module里,就不是传递,是分享。
    (不是简单的重新将form1的数组在form2中重定义、赋值)是什么意思?
      

  2.   

    哦,就是在form2中的重新定义一个和form1中相同的数组
      

  3.   

    form1里传递个long n 到form2.form2里
    dim str() string
    redim str(n)
      

  4.   

    放在module里方便多了,不知道为什么不用。
      

  5.   

    是很方便啊,但是只能在form1中才能赋值啊。况且,在form2中引用后,好像不能修改其中的值
      

  6.   

    那里都可以赋值的。
    好,问题到 -- 在form2中引用后,好像不能修改其中的值,代码
      

  7.   

    可以改的,但是在传递回form1的时候,不能unload form2,而要form2.hide,待form1将修改后的数据读完后,再卸载form2就能实现你说的,但估计会占一些资源。
      

  8.   

    试验确实数组和变量不同module1
    Public a(5) As StringPublic ss As Stringform1
    Private Sub Command1_Click()
        Dim i As Integer
        
        For i = 0 To UBound(a)
            a(i) = i * 3
        Next i
        
        ss = "qqqq"
        
    End SubPrivate Sub Command2_Click()
        Dim i As Integer
        
        For i = 0 To UBound(a)
            a(i) = i * 3
            Debug.Print "a(" & i & ") = " & a(i)
        Next i
        
        Debug.Print ss
        
    End SubPrivate Sub Command3_Click()
        Form2.ShowEnd Subform2
    Private Sub Command1_Click()
        Dim i As Integer
        
        a(3) = "123"
        
        For i = 0 To UBound(a())
            Debug.Print "a(" & i & ") = " & a(i)
        Next i
        
        ss = "eee"
        
        Debug.Print ss
        
    End Sub点form1的command1
    点form1的command2
    a(0) = 0
    a(1) = 3
    a(2) = 6
    a(3) = 9
    a(4) = 12
    a(5) = 15
    qqqq
    点form1的command3
    点form2的command1
    a(0) = 0
    a(1) = 3
    a(2) = 6
    a(3) = 123
    a(4) = 12
    a(5) = 15
    eee点form1的command2
    a(0) = 0
    a(1) = 3
    a(2) = 6
    a(3) = 9
    a(4) = 12
    a(5) = 15
    eee
      

  9.   

    解决办法:
    在 module1 中编写数组操作函数然后在其他窗体中调用来实现
      

  10.   

    jhone99,谁跟你说的!!!
    你别在这儿误导新手啊!!!!你看你 Form1 的代码:
    在 Form2 中更改了 a(3) 的值后,你在 Form1 中的 Command2_Click() 中,又用:
    a(i) = i * 3

    把 a(3) 的值改回去了,输出后当然没有变化啦!!!!
      

  11.   

    在 Module 中声明成 Public 的,你所说的问题就不存在了!
      

  12.   

    Chen8013:
           我下午的解决方式和你13楼一样,果然解决了问题