请各位说说,在界面之间变量传递一般是用什么方法呢?
全局量,class,还是其它什么呢?
我一直用全局量,结果感觉总不是很爽,有时用多了就出乱子.

解决方案 »

  1.   

    可以用全局变量,还可以通过设置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
      

  2.   

    在From中用public变量,然后其它窗体用from1.变量名
      

  3.   

    建议Dim 改成Private这样看上去比较清楚,呵呵
    to 楼主,会有什么乱子?是你自己变量搞混了吧?呵呵
    全局变量基本上也可以的,但是从封装的角度上将,尽量不用全局的
    Form可以看做一个特殊的Class,所以给类增加一个属性就可以传递你的变量了
      

  4.   

    拉个控件,把visible设置成false,对它操作就行
      

  5.   

    关键是你的变量的功能,如果是公用的(例如一些程序的配置信息),就可以写在模块里面,如果是窗体的一部分(例如一个用户信息输入窗体中的用户ID)就可以像上面那样写在form的属性里面。所以这个具体怎么定义没有一定的规定,要看你的变量的用途。
      

  6.   

    ryuginka(ryuginka) 晕,你太强了
      

  7.   

    如 cuizm(射天狼) 所说,还是参照VC的方法,通过GET 或SET函数进行读写变量。这样就不容易出错。
      

  8.   

    1、对于固定的类型,比如:Integer、Long、Double、Single、String等,以窗口“属性”来传递变量。2、对于自定义类型,对该类型编写一个Class类模块。然后以窗口的属性来传递该模块。从Class类模块获取type定义的类型可以编写函数过程来实现。
    建议你将界面分为几个部件写为控件,这样更方便一些。3、极为特殊的情况下,如果上面两种都有困难,将变量的值转换为字符串来传递。我自己的程序里采用我自己设计的两种格式,可以将任意变量值转换为字符串,并从字符串获得该值。4、用VarPtr配合CopyMemory强行拷贝。不过该方法属于歪门邪道,还是少用为好。
      

  9.   

    我还是没有看明白!!!什么意思,,在Form中定义和在模块中定义有什么区别吗?注:我知道在模块中可以定义全局变量,但是不是说使用全局变是不好吗?最好用Let或Set 属性
      

  10.   

    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里面的全局变量,会在程序的整个生存周期都存在,并且可以被任意访问使用
      

  11.   

    作为容易理解,并且不易出问题,就用ryuginka(ryuginka) 兄的办法(读控件数据)
    如果按照标准的面向对象理解,你可以写个SetValue()、与GetValue()我常用的是操作控件的属性值