我在用户自定义控件的UserControl_Initialize事件中,有如下代码:
For i = 0 To 10
    Set m_Line(i) = UserControl.Controls.Add("VB.Line", "m_Line" & i, Picture1)
    Set m_Label(i) = UserControl.Controls.Add("VB.Label", "m_Label" & i, Picture1)
Next然后在UserControl_Resize事件中,想删除刚才动态添加的控件数组中的控件,如下:
For i = 0 To 10
    Controls.Remove ("m_Line" & i)
Next但是总是报错,显示“Unable to Unload within this context”怎么才能删掉动态控件数组中的控件呢?

解决方案 »

  1.   

    For i = 0 To 10
        Controls.Remove ("m_Line" & i)
    Next改成下面的语句试试:
    For i = 0 To 10
        Picture1.Controls.Remove ("m_Line" & i)
    Next
      

  2.   

    改成下面的语句试试:
    For i = 0 To 10
        unload m_Label(i)
        unload m_Line(i)
    Next
      

  3.   

    这样试试:
    For i = 1 To 10
        unload m_Label(i)
        unload m_Line(i)
    Next
      

  4.   

    使用Add方法创建的控件是不能用 unload方法卸载的,MSDN上有明确说明。