关于如何避免渲染此表单的长时间延迟有什么建议吗?
我有一个带有“请稍候,正在下载”标签的用户表单,没有其他控件。当用户请求数据下载(异步 API 请求)时,我关闭键盘输入,并显示“请稍候”表单。处理数据的回调重新启用键盘输入并隐藏表单。奇迹般有效。
除了它最初会弹出一个空白的白色矩形,然后需要几秒钟(多达 5 秒钟)来绘制。我的其他用户表单(模式,用于数据输入)立即绘制我什至从未注意到它们开始时是白色的。
这是我在发出异步数据请求之前显示表单的方式:
' Deactivate the keyboard.
Application.OnKey "^d", "KeyboardOn"
Application.DataEntryMode = True
' Display the splash form non-modally.
ssiWaitDialog.TaskDone = False
ssiWaitDialog.Show False
以下是它在回调中的删除方式:
' Close the splash form.
ssiWaitDialog.TaskDone = True
ssiWaitDialog.Hide
' Re-activate the keyboard.
Application.DataEntryMode = False
这是表单代码:
' Set true when the long task is done.
Public TaskDone As Boolean
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = Not TaskDone
End Sub
问题表单的属性值仅与我的其他表单 modal=false 显着不同,并且我已将光标设置为沙漏。不太显着的差异是高度/宽度和标签字体大小。