可以用全局变量,还可以通过设置Form的属性来实现参数传递:'Form2:Dim i As IntegerProperty Let abcd(x As Integer) i = x End PropertyProperty Get abcd() As Integer abcd = i End PropertyPrivate Sub Form_Load() Me.Caption = Me.abcd End Sub'Form1: Private Sub Command1_Click() Form2.abcd = 5 Form2.Show End Sub
在From中用public变量,然后其它窗体用from1.变量名
建议Dim 改成Private这样看上去比较清楚,呵呵 to 楼主,会有什么乱子?是你自己变量搞混了吧?呵呵 全局变量基本上也可以的,但是从封装的角度上将,尽量不用全局的 Form可以看做一个特殊的Class,所以给类增加一个属性就可以传递你的变量了
Form,Class属于类,有类的特征 类里面的全局变量, 比如,在类里面声明 Public DisplayName as string 实际上等于 private m_sDspName as string public property get DisplayName() as string DisplayName=m_sDspName End property public property let DisplayName(byval sName as string) m_sDspName=sName end property这个全局变量在类被创建时存在,虽类销毁的时候消失 在它存在期间,自然可以作为这各类的属性被别人访问使用而module里面的全局变量,会在程序的整个生存周期都存在,并且可以被任意访问使用
i = x
End PropertyProperty Get abcd() As Integer
abcd = i
End PropertyPrivate Sub Form_Load()
Me.Caption = Me.abcd
End Sub'Form1:
Private Sub Command1_Click()
Form2.abcd = 5
Form2.Show
End Sub
to 楼主,会有什么乱子?是你自己变量搞混了吧?呵呵
全局变量基本上也可以的,但是从封装的角度上将,尽量不用全局的
Form可以看做一个特殊的Class,所以给类增加一个属性就可以传递你的变量了
建议你将界面分为几个部件写为控件,这样更方便一些。3、极为特殊的情况下,如果上面两种都有困难,将变量的值转换为字符串来传递。我自己的程序里采用我自己设计的两种格式,可以将任意变量值转换为字符串,并从字符串获得该值。4、用VarPtr配合CopyMemory强行拷贝。不过该方法属于歪门邪道,还是少用为好。
类里面的全局变量,
比如,在类里面声明
Public DisplayName as string
实际上等于
private m_sDspName as string
public property get DisplayName() as string
DisplayName=m_sDspName
End property
public property let DisplayName(byval sName as string)
m_sDspName=sName
end property这个全局变量在类被创建时存在,虽类销毁的时候消失
在它存在期间,自然可以作为这各类的属性被别人访问使用而module里面的全局变量,会在程序的整个生存周期都存在,并且可以被任意访问使用
如果按照标准的面向对象理解,你可以写个SetValue()、与GetValue()我常用的是操作控件的属性值