以下步骤是在设计状态下(非运行状态)我自己边了一个控件,为了测试这个控件,增加了一个表单FORM1,并将控件放在FORM1上,在IDE里先关闭FORM1(点击FORM1右上角的“X”按钮)之后再关闭控件的设计窗口时,IDE不会自动关闭,但是如果先关闭控件的设计窗口的时候,IDE就会自动出错关闭。究竟是什么地方出错呢?

解决方案 »

  1.   

    可能的出错位置,出错原因只有你自己才知道:可能性较大
    Terminate和初始化事件(Init……)usercontrol_ReadProperties事件过程
    usercontrol_WriteProperties事件过程
    resize事件尤其注意初始化事件其它可能
    Paint,Show事件你先关form后关控件不会出错是因为这时form被关闭了,这些事件就不会产生
    反之,先关控件再关form时,由于form还开着,有控件的实例在上面,便引发这些事件,据此推断,问题一定在事件过程或事件过程调用的子过程里
      

  2.   

    控件中用到了 SubClassing 是否就会出现这样的问题呢?奇怪的是编译出来的控件运行也稳定。
      

  3.   

    因为你关闭了设计窗体后,VB IDE窗体自动激活了测试窗体,这时可能发生的时间有Usercontrol_ReadProperty,Usercontrol_Show,Usercontrol_Paint
    你仔细检查以上时间,是否属性赋值由问题
      

  4.   

    呵呵,
    subclass的很容易出问题,
    你在terminate中最好重新setwindowlong为原窗口函数