怎样在Load窗体中关闭窗体?

richardi 2013-11-23 02:07:07
初用vb,有2个窗体Form1 和Form2,Form1的按钮单击调用Form2

按钮事件代码


Private Sub cmb1_Click()
Load Form2
For2.show vbModal
End Sub

下面是Form2的Load事件
Private Sub Form_Load()

...此处执行很多代码初始化界面,想实现如果出错,就不显示这个窗体,现在的问题时使用 Exit sub 退出还是会显示窗体,使用end 会结束整个程序,使用unload me 报错

End Sub
...全文
319 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
policelorl 2013-12-03
  • 打赏
  • 举报
回复
dim m as new form2 m.show
of123 2013-11-27
  • 打赏
  • 举报
回复
如果你在 Form2 中的处理代码要涉及界面控件,可以在 Activate 事件中 Unload Me Form2的Load事件
Dim BlnError As Boolean
Private Sub Form_Load()

  ...此处执行很多代码初始化界面,想实现如果出错,就不显示这个窗体,

If some_thing_wrong Then
blnError = True
Exit Sub
End If   
End Sub

Private Sub Form_Activate()
If blnError Then Unload Me
End Sub
注意,在 Form1 中
Private Sub Form_Unload()
Unload Form2
End Sub
of123 2013-11-27
  • 打赏
  • 举报
回复
不要用 Load 事件,在 Initialize 事件中判断。它先于 Load 事件发生。 当然,最好还是在 cmb1_Click() 中就进行有关的判断,如果条件不符,就不加载 Form2。
星江月 2013-11-26
  • 打赏
  • 举报
回复
Load函数有一个机制,当Load的对象又被释放时,会抛出异常,解决方法有两个 1.全局变量 Public bSuccess As Boolean Private Sub cmb1_Click() bSuccess = False Load Form2 If bSuccess = False Then Form2.Show vbModal Else Unload Form2 End If End Sub Private Sub Form_Load() '执行你的初始化代码, 出错直接用Exit Sub bSuccess = True End Sub 2.把Form2.Show放到Form2的Load事件中, 最好用Me.Show 然后"派生"一个新的Form2 Private Sub cmb1_Click() Dim f As New Form2 End Sub
王二.麻子 2013-11-26
  • 打赏
  • 举报
回复
对楼上的方法再补充下: 不用全局变量,用窗体的公共变量也可以

'在form1里面

Private Sub Command1_Click()
    Load Form2
    If Form2.bSuccess = False Then
        Form2.Show vbModal
    Else
        Unload Form2
    End If
End Sub

'在form2里面
Public bSuccess As Boolean
Private Sub Form_Load()
a = Rnd
If a > 0.5 Then bSuccess = True Else bSuccess = False
End Sub

超越_zww 2013-11-23
  • 打赏
  • 举报
回复
补充: Private Sub Form_Load() on error goto err ...此处执行很多代码初始化界面,想实现如果出错,就不显示这个窗体,现在的问题时使用 Exit sub 退出还是会显示窗体,使用end 会结束整个程序,使用unload me 报错 exit sub err: isError=true End Sub
超越_zww 2013-11-23
  • 打赏
  • 举报
回复
可以在Form2上加一时间控件。 加判断: if isError=true then Unload me Private Sub Form_Load() on error goto err ...此处执行很多代码初始化界面,想实现如果出错,就不显示这个窗体,现在的问题时使用 Exit sub 退出还是会显示窗体,使用end 会结束整个程序,使用unload me 报错 err: End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧