为什么防止子窗体被关闭时设置CANCEL=TRUE不管用
为了防止一个子窗体在执行一个耗时的操作时被关闭,在此窗体的UNLOAD 和QueryUnload事件中都加了判断
If Command1.Enabled = False Then Cancel = True (在耗时操作执行时先将command1的enabled属性设置为false)
但是此种方法,在此耗时操作执行时,第一次点击此子窗体的关闭按钮时,正常,没有响应,但是接着第二次点击此子窗体的关闭按钮时,就出来一个关闭整个程序的窗口提示。
怎么样避免此种情况的发生。
[解决办法]
恐怕你第一点时就并没有正常响应,按说你那个耗时的操作要经常调用 Doevents一类的才行
[解决办法]
是MDI子窗体吗?
测试了一下是对的:
'Form1窗体代码
'Form1作为MDI子窗体
Option Explicit
Private Sub Command1_Click()
Dim i As Long
Command1.Enabled = False
For i = 0 To 3333333
'''''
DoEvents
Next
Command1.Enabled = True
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If Command1.Enabled = False Then
Cancel = 1
Else
Cancel = 0
End If
End Sub