一个ocx控件工程,代码很简单
Private m_Parent As FormPrivate Sub UserControl_Click()
    Form1.Show vbModeless, m_Parent
End SubPublic Property Get ParentForm() As Object
    Set Parent = m_Parent
End PropertyPublic Property Let ParentForm(ByVal vNewValue As Object)
    If TypeOf vNewValue Is Form Then Set m_Parent = vNewValue
    
End Property在一个测试工程中引用这个工程,代码如下:
Private Sub Form_Load()
    UserControl11.ParentForm = Me
End Sub点击这个控件就会弹出一个form,这个是没问题的,但是编译这个ocx工程以后,去掉对工程的引用,换成引用生成ocx文件,这时就会出现错误,大意是“不支持设计和编译时的控件交互”,不知道什么原因,请各位高手指教

解决方案 »

  1.   

    你把引用ocx的那个工程也编译看看?
      

  2.   

    强啊,果然是这样,测试工程编译成为exe就行了,但是为什么会这样呢,能不能给个合理的解释,马上结帖
      

  3.   

    因为编译的ACTIVEX工程,生成。.ocx控件,在他初始化时就载入他引用的动态库,你可以用depends分析一下。
      

  4.   

    重新打开工程就会有问题吗?
    将ocx工程的设置为二进制兼容.