当用户点击外部(计算机桌面上的任何位置)模式表单时,我想关闭一个模态表单。我们怎么能这样做作为模态形式并不意味着失去焦点。
答案 0 :(得分:2)
您需要挂钩鼠标(如果需要,还需要键盘)并捕捉他们的事件。然后检查点击是否发生在表单(和区域)之外。如果是,请标记一个标志,该标志可由模型表格读取,可以关闭。
ALGO:
挂钩鼠标点击事件。
调用回调函数时,请检查点击位置 - 如果它位于您的表单内(您可能需要将位置转换为桌面位置 - 我希望您知道如何!)
< / LI>如果该点位于表单之外,请设置一个标志(布尔值或任何让您开心的事物)。确保表单能以某种方式读取标志。
触发要捕获的表单的事件。在它的处理程序中读取标志状态。如果为true,请关闭/卸载表单。
答案 1 :(得分:1)
我认为您不需要将其设为模态...然后您可以选择在Deactivate
事件中关闭它的选项。
你不需要模仿它的原因:第一次显示它时,它将具有焦点并且是最顶层的。 Modal阻止你点击其他地方,但你希望能够点击其他地方......当你这样做时,表格消失了,所以没有模态需求。
答案 2 :(得分:1)