每一个VB form都是自动生成的吧,比如我使用
       VBForm1.Show
就可以显示它。能不能像Delphi那样定义非自动生成的form,等到要用时生成并显示?

解决方案 »

  1.   

    Private Sub Command1_Click()
        Dim i As Form
        Set i = New Form1
        i.Show
    End Sub
    -----------------
    我只知道这样可以生成一个现有的窗体。
      

  2.   

    可能我没有说清楚,我指的是比如我设计了窗体form1,可以 set aa = new form1
    可是也可以 form1.show
    那么form1到底是类还是对象?
    同时我不希望VB自动生成form1对象
      

  3.   

    因为VB默认的启动对象是form1,如你有需要也可以设成普通的模块文件,也就是"sub main"函数,然后你在sub main 调用New form1就可以。
    类的解释:
    Private Sub Form_Load()    Dim class1 As class1
        Set class1 = New class1
        class1.aaEnd SubClass1:
    Public Sub aa()
        MsgBox 1
    End Subform1是对象名
    是form1的一个实例。也就是说form1和form1这个类的名字一样。呵呵
      

  4.   

    Form1是类的名称,同时VB会自动在后台生成一个名为Form1的同名窗体,当你调用Form1的方法或属性时,它会自动加载进来。所以说这个默认窗体是不能删除的,但只要在代码中不使用它,那么它也不会加载进内存。
      

  5.   

    //那么form1到底是类还是对象?
    //同时我不希望VB自动生成form1对象
    晕哦,form1是类,但你如果直接调用form1就自动实例化位对象了
    不希望自动生成form1对象,就不要直接使用form1,没有人强迫你用啊~
      

  6.   

    无独有偶,VB有个缺陷:VB能用New 关键字动态加载ActiveX控件和用户类,但不能通过New 动态加载VB内部类,但可以用Control集合的Add操作。呵呵