重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这是由于你的启动类是form1,也就是说form1是你的主函数,你关闭form1就相当于关闭程序;
创新互联公司是一家专注于网站设计、成都网站建设与策划设计,龙游网站建设哪家好?创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:龙游等地区。龙游做网站价格咨询:18982081108
如果你只希望弹出form2的时候form1隐藏,可以再form2.show()之后调用form1.hide(),之后关闭form2的时候再关闭form1就可以达到你想要的效果了;
再有一种做法就是你需要一个主函数类,使用它调用form1跟form2,这样关闭哪一个都不会影响另一个。
楼主,敢情您用的不是VB6啊~~是VB.NET~~~ 那就要加这个事件: Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If MsgBox("确定退出吗?", MsgBoxStyle.YesNo) = MsgBoxResult.No Then e.Cancel = True End If End Sub 43295811的答案是对的 Form_QueryUnload 这个是一个事件。所谓事件也就是不用自己去调用的函数,系统会在适当的时候调用它,你只要负责写这个函数的内容就是了。所谓适应的时候,像 QueryUnload 的话就是退出的时候,又在发生 Unload 事件之前。 如果不明白,就理解为一点击X就会执行Form_QueryUnload里面的代码。 另外,这个函数声明不是自己写的,编辑器会自己生成。你只要双击主窗体(不是运行的时候喔),会进入代码编辑器,你再点击代码编辑器的右上角的下拉框,选择 QueryUnload 就行了~~ 看到了吧,它就会自动生成 Private Sub Form_Unload(Cancel As Integer) '... End Sub 如果不知道点哪里,那把上面那两行复制到代码编辑器也可以~~
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
MsgBox("窗口即将关闭....")
End Sub
Else
e.Cancel = True
End If
这像是以前 VB 的写法,VB.net 里不是这样的,应该是:
Private Sub Form_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
MagBox("1111")
End Sub
注意,... Handles MyBase.Closed 是在同一行里的。
this.close() 只是关掉,没有释放,不对 me.close() 应该释放一下 me.Dispose() 给分吧、
首先这个应该放在 FormClosing 事件中。
其次,因为你 Else 之后没有忽略窗体关闭的请求。
应该再加一句 e.Cancel = True,表示告诉系统,我取消关闭窗体这个操作了。