如何引用Form 中定义的public 数组?比如在frmForm 代码文件中:
public m_nVal as integer
public m_nArrVal(1 to 20) as integer    '如此定义是通不过的其中: 
   m_nVal 可以被外模块引用, 但是m_nArrVal() 却不可?

解决方案 »

  1.   

    数组是不能用public定义到窗体的,想做全局数组的话就定义到标准模块中
      

  2.   

    Option Explicit'''''''''''
    'form1
    ''''''''''''
    Private Sub Form_Load()
        Dim frm As frmForm
        Dim nArrVal() As Integer
        Set frm = New frmForm
        frm.ArryVal(2) = 3
        MsgBox frm.ArryVal(2)
        nArrVal = frm.ArryVals
        MsgBox nArrVal(2)
    End Sub'''''''''''
    'frmForm
    ''''''''''''
    Option Explicit
    Private m_nArrVal(1 To 20) As Integer
    Public Property Get ArryVal(Index As Integer) As Integer
        ArryVal = m_nArrVal(Index)
    End PropertyPublic Property Let ArryVal(Index As Integer, ByVal vNewValue As Integer)
        m_nArrVal(Index) = vNewValue
    End PropertyPublic Property Get ArryVals() As Variant
        ArryVals = m_nArrVal
    End Property
      

  3.   

    说明一下 
    首先在frmForm 定义了ArryVal 和 ArryVals 属性来封装 m_nArrVal 数组,其中ArryVal 取数组单个元素,ArryVals 获取真个数组在form1里来访问 和设置frmForm 的私有数组变量。//
    建议 所有的 窗体 变量都通过属性来访问。