vb中我想实现在关闭程序时只有在运行时单击过command1才弹出对话框,以下是代码,为什么无法实现? 20

代码很简单:PrivateSubCommand1_Click()dimxasintegerx=1endsubPrivateSubForm_Unload(CancelAsI... 代码很简单:
Private Sub Command1_Click()
dim x as integer
x=1
end sub

Private Sub Form_Unload(Cancel As Integer)
if x=1 then
msgbox(您单击过command1)
unload me
end
else
unload me
end
end if
end sub
但是运行时不管单击没单击过command1,都不弹出对话框,为什么啊??
展开
 我来答
百度网友5e96539eb
2009-04-03 · TA获得超过272个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:176万
展开全部
你的x不是全局变量。
Command1_Click下的x 与 Form_Unload下的x 是两个不同的变量。

像你这样情况只需定义一个全局的布尔性变量就行了。

我虽然没有给你写代码,但我告诉了你原因,知道了原因,就能自己学会修改代码了,呵呵。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-04-03
展开全部
dim x as integer

放在窗体级

Private Sub Command1_Click()
dim x as integer ‘这样是过程变量 和Form_Unload中x无关
x=1
end sub

改成
dim x as integer

Private Sub Command1_Click()
x=1
end sub

Private Sub Form_Unload(Cancel As Integer)
if x=1 then
msgbox("您单击过command1")
unload me
end
else
unload me
end
end if
end sub

dim x as integer
放在代码窗 通用 声明 部分
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhengsiyuan
2009-04-03 · 超过17用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:0
展开全部
改成:
Dim x As Integer

Private Sub Command1_Click()
x = 1
End Sub

Private Sub Form_Unload(Cancel As Integer)
If x = 1 Then
MsgBox ("您单击过command1")
Else
Unload Me
End If
End Sub

因为:如果在cmd里面声明变量那么紧对cmd有效
如果声明全局变量,那么就对该窗体的所有过程有效。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cwa9958
2009-04-03 · TA获得超过1884个赞
知道大有可为答主
回答量:2504
采纳率:0%
帮助的人:1991万
展开全部
dim x as integer

Private Sub Command1_Click()
x=1
end sub

Private Sub Form_Unload(Cancel As Integer)
if x=1 then msgbox "您单击过command1"
end sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式