我在module1中定义了一个public 的point类型,包括x,y两个值
但我在form1中一个函数参数以point为类型时,
 Sub addPointToPolygon(plgNum As Integer, newPoint As Module1.Point, tail As Boolean)
vb提示只有公共模块的定义的公共变量类型才能用!
我没有违反这个规定吧?怎么通不过?

解决方案 »

  1.   

    模块:
    public type point 
           x as integer
           y as integer
    end typeform1:private point1 as point
    Sub addPointToPolygon( newPoint As Point)
    'do something
    end subprivate sub Form_Load()
    '初始化point1
    point1.x = 1
    point1.y =1
    '传递给过程
    addPointToPolygon point1
    end sub
    自己试试.不会错的.
      

  2.   

    Private Sub addPointToPolygon(plgNum As Integer, newPoint As Module1.point, tail As Boolean)
     
     End Sub
      

  3.   

    通过了,谢谢!但是为什么呢?我理解错了那个错误提示了吗?
    为什么在public的sub里头就不能用自定义的变量类型?
      

  4.   

    窗口过程的缺省情况就是Public的,你不是违反这个规定了吗?呵呵如果是私有函数,加Private。如果需要模块外调用,加Friend。