当前位置:编程学习 > VB >>

送分100分:怎么在一个窗体显示前将其关闭。

在主窗体中调用一个子窗体,而在子窗体的LOAD中添加了一些判断,当某个条件不满足时,就让这个子窗体在显示之前退出,当然也不会显示这个子窗体了,但是我直接加了一个UNLOAD ME,却提示“对象已卸载”。

具体代码如下:
主窗体:
Private Sub Command1_Click()
   Form2.Show 1
End Sub

子窗体:
Private Sub Form_Load()
   Unload Me
End Sub

如何实现我的想法。
--------------------编程问答--------------------
Private Sub Command1_Click()
    If XXX Then 'Form2加载条件判断
        Form2.Show
    End If
End Sub
--------------------编程问答-------------------- 这样如何

Option Explicit
Private fNoNeedLoad As Boolean
Private Sub Form_GotFocus()
    If fNoNeedLoad Then
        Unload Me
    End If

End Sub
Private Sub Form_Load()
    fNoNeedLoad = True

End Sub
--------------------编程问答-------------------- 为什么不开始就不让它显示呢 --------------------编程问答-------------------- Private Sub Form_Activate()
Unload Me
End Sub
--------------------编程问答--------------------
引用 4 楼 of123 的回复:
Private Sub Form_Activate()
Unload Me
End Sub


这个简单。 --------------------编程问答-------------------- 不要在Form2中写条件,这样窗体会闪烁.在Form1中写条件:
 
'Form1的窗体代码
Option Explicit

Public BP As Boolean

Private Sub Command1_Click()
        BP = False 'True
        If BP Then
           Form2.Show 1
        Else
           Unload Form2
        End If
End Sub
--------------------编程问答-------------------- ....................... --------------------编程问答-------------------- --------------------编程问答-------------------- 1,没进入窗体就判断
2,form2.hide 
3,Form_Activate 中写unload --------------------编程问答--------------------
引用 6 楼 chenjl1031 的回复:
不要在Form2中写条件,这样窗体会闪烁.在Form1中写条件:


VB code
'Form1的窗体代码
Option Explicit

Public BP As Boolean

Private Sub Command1_Click()
        BP = False 'True
        If BP Then
           Form2.Show……

这个才是正确思路和一贯作法 --------------------编程问答-------------------- ......................... --------------------编程问答--------------------
引用 6 楼 chenjl1031 的回复:
不要在Form2中写条件,这样窗体会闪烁.在Form1中写条件:

VB code'Form1的窗体代码OptionExplicitPublic BPAsBooleanPrivateSub Command1_Click()
        BP=False'TrueIf BPThen
           Form2.Show1Else
           Unload Form2EndIfEnd Sub

这样和直接不show有区别吗?
--------------------编程问答-------------------- BP永远为false --------------------编程问答--------------------
引用 13 楼 liqiao_2010 的回复:
BP永远为false


BP根据需要,是可变的,那就是楼主自己的事了!
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,