VB6中窗体中的数值传送 将数组在module中定义成Public,窗体form1/form2间值的传递能实现,但在form2中好像是不是修改不了从form1中传过来的值啊。问题是如何将传过来的值修改啊(不是简单的重新将form1的数组在form2中重定义、赋值)? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是在module里,就不是传递,是分享。(不是简单的重新将form1的数组在form2中重定义、赋值)是什么意思? 哦,就是在form2中的重新定义一个和form1中相同的数组 form1里传递个long n 到form2.form2里dim str() stringredim str(n) 放在module里方便多了,不知道为什么不用。 是很方便啊,但是只能在form1中才能赋值啊。况且,在form2中引用后,好像不能修改其中的值 那里都可以赋值的。好,问题到 -- 在form2中引用后,好像不能修改其中的值,代码 可以改的,但是在传递回form1的时候,不能unload form2,而要form2.hide,待form1将修改后的数据读完后,再卸载form2就能实现你说的,但估计会占一些资源。 试验确实数组和变量不同module1Public a(5) As StringPublic ss As Stringform1Private 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 Subform2Private 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的command2a(0) = 0a(1) = 3a(2) = 6a(3) = 9a(4) = 12a(5) = 15qqqq点form1的command3点form2的command1a(0) = 0a(1) = 3a(2) = 6a(3) = 123a(4) = 12a(5) = 15eee点form1的command2a(0) = 0a(1) = 3a(2) = 6a(3) = 9a(4) = 12a(5) = 15eee 解决办法:在 module1 中编写数组操作函数然后在其他窗体中调用来实现 jhone99,谁跟你说的!!!你别在这儿误导新手啊!!!!你看你 Form1 的代码:在 Form2 中更改了 a(3) 的值后,你在 Form1 中的 Command2_Click() 中,又用:a(i) = i * 3把 a(3) 的值改回去了,输出后当然没有变化啦!!!! 在 Module 中声明成 Public 的,你所说的问题就不存在了! Chen8013: 我下午的解决方式和你13楼一样,果然解决了问题 一两年前,ID在VB版被封,今天居然能用了,,,庆祝下,散分! 为什么RichTextBox1要自动换行??? 为什么我使用input方法之后,mscom的comevents值还是=2 菜鸟求助: 关于定义变量的问题 请教! 各位高手,我有一个棘手的问题,望指教,在线等候! 求助:编译器 数据库问题 知道一个窗体的标题,如何得到它的句柄? 邮购了一份VS。NET BETA2 请问怎么安装,是不是只能在WIN2K SERVER上安装呢?在个人版中可以吗?必需装OFFICE XP 吗?帮帮我好吗?我在VB。NET论坛中提问没人理我!!! vb编写的程序在所有的系统都支持吗? 曲线编辑问题
(不是简单的重新将form1的数组在form2中重定义、赋值)是什么意思?
dim str() string
redim str(n)
好,问题到 -- 在form2中引用后,好像不能修改其中的值,代码
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
在 module1 中编写数组操作函数然后在其他窗体中调用来实现
你别在这儿误导新手啊!!!!你看你 Form1 的代码:
在 Form2 中更改了 a(3) 的值后,你在 Form1 中的 Command2_Click() 中,又用:
a(i) = i * 3
把 a(3) 的值改回去了,输出后当然没有变化啦!!!!
我下午的解决方式和你13楼一样,果然解决了问题