我有一个mainForm和dialogForm。我想显示模式对话框1秒钟,它应该以编程方式关闭。我尝试了这段代码:
//onButtonClick()
{
dialogForm->ShowModal();
Sleep(1000);
dialogForm->ModalResult = mrOk;
dialogForm->Close();
}
我也尝试了没有Sleep(1000);
的情况,但是它只是没有关闭表格。如何正确关闭此表格?
答案 0 :(得分:3)
ShowModal()
在关闭模式形式时返回。那是关于形式是形式的形式的关键点之一。因此,只有在关闭表单后,程序才会调用Sleep()
。
相反,您需要向表单添加间隔为1000ms的计时器。显示表单时启动计时器。计时器触发后,关闭表单。
请注意,永远不要从UI线程调用Sleep()
,因为这会停止UI线程处理消息,从而使程序无响应。