# 谢谢！但观念还不清楚请多指点！多出来的Form怎么办？

Posted by 新手 on September 22, 1999 at 14:33:25:

In Reply to: Re: 用New建立物件后，本尊怎么办？ posted by 琏琏 on September 22, 1999 at 11:47:02:

: : 我在练习这New关键字的用法，请高手指点：

: : Private Sub Form_Load()
: : Dim frmform1 As Form1
: : Set frmform1 = New Form1
: : End Sub

: : Private Sub Command1_Click()
: : frmform1.Caption = "Form1"
: : frmform1.Show
: : End Sub

: : 错误：执行阶段错误'424'：此处需要物件(Dim frmform1 As Form也是一样错)

: : 但是若全写在：
: : Private Sub Command1_Click()
: : Dim frmform1 As Form1
: : Set frmform1 = New Form1
: : frmform1.Caption = "Form1"
: : frmform1.Show
: : End Sub
: : 就没错而且产生另一个Form。Why？
: : 这个本尊的Form1不是多余的吗？我想用自己建立的取替本尊Form1来执行程式，多出的本尊Form如何处理？

: 没有所谓的本尊存在!!
: 相关微软的叙述请自行参阅!!
: 所谓的本尊实际上是
: Public Form1 as New Form1

: 对于你的问题在于
: Form_Load
: Command1_Click
: 分别的程式码中, frmform1 是属于私有变数, 所以是两个物体, 若是在一般宣告区
: Private frmform1 as Form1
: 则可在
: Form_Load
: 执行 Set ...
: Command1_Click
: 执行 frmform1.Show

: 详情请参考变数生命周期的讨论

以上述程式码按下Command1执行时不是产生另一个Form出来吗？如此就有两个Form出现，一个是本来的Form1，另一个是用New建立的，执行用New建立的就等于执行本来的Form1。VB6程式开发手册我已经看了，上有提到[引用包含物件变数比反覆引用物件本身有更高的效率]，也按照其例题练习，可是就一直弄不清楚这多出来的Form要如何处理，我想要是用New建立的Form以后就代替原来的Form执行程式并可结束整个程式。

Follow Ups:

- Re: 谢谢！但观念还不清楚请多指点！多出来的Form怎么办？ 琏琏 09:34:52 9/23/99 (0)