VB中切换用户时遇到的问题!!急!

来源:百度知道 编辑:UC知道 时间:2024/06/14 04:48:27
我在主窗体的QueryUnload事件中写了如下代码

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

Dim i As Integer
i = MsgBox("你确定要退出系统吗?", vbQuestion + vbYesNo, App.Title)

If i = vbNo Then
Cancel = 1
End If

End Sub

当我执行切换用户的代码时遇到一个问题,本来窗体应被卸载,登录窗口显示的,但是还像上边那样弹出对提示退出的话框,当点否的时候主窗体没被卸载,登录窗体却出来了,怎么解决这个问题呢?条件是不能改动主窗体的QueryUnload事件,谢谢了!

'楼上提到的太复杂,变通一下就好
'注意:form1(me)为楼主的卸载窗体,form2为楼主的加载窗体.

Option Explicit

Private Sub Command1_Click()
Form2.Show
Unload Me
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If Not Form2.Visible Then
Unload Form2
Dim I As String '还有这里的"I"与"I = 7"的关系,最好"String"对应"vbNo","Integer"对应"7"
I = MsgBox("你确定要退出系统吗?", vbQuestion + vbYesNo, App.Title)
If I = vbNo Then Cancel = 1
End If
End Sub

非得改, 至少要设定一个全局变量来决定是不是要显示提示退出.

当你执行切换用户时设定变量的值, 在queryunload中判断这个变量 .

否则... 都会提示

第一:记住 主窗体要在登陆窗体出来之后才能关闭,如果先关闭了主窗体,程序直接就结束了弥补存在弹出登陆窗体。。。
第二:这样的情况说明你If i = vbNo Then
Cancel = 1
End If
这段代码没有执行,你应该再参照下语法,应该是语法出了点小错误。。。我个人是学DELPHI的,思路没什么问题,语法方面的问题吧应该。。。

不应该这么写,vb是事件驱动程序.
你什么时间在线,给我发消息.
我帮你解答.
光在着留言说不清

把"cancel=1"改为"ca