【问题标题】:Close form on "lose focus" in VBA?VBA中“失去焦点”的关闭形式?
【发布时间】:2018-06-28 02:33:32
【问题描述】:

我有一个 VBA 应用程序,它显示了一个带有控件的表单。 如果用户单击表单之外的任何位置,我正在尝试找到一种关闭表单的方法。

我的 VBA 应用程序不在 Excel 中,所以我不能使用 Worksheet.SelectionChange 事件

【问题讨论】:

  • 最好让表单显示模态并给他们一个可以点击的取消按钮。
  • 如果您在 Access 中创建表单,则会有一个 form.LostFocus 事件。
  • @YowE3K:我正在模拟一个下拉菜单。 AutoDesk 发明者允许我在其功能区栏上创建一个按钮并将其绑定到宏。宏调用 form.show。如果用户单击该表单之外的任何位置,我想关闭它。
  • 很公平 - 如果用户在执行其他操作时它消失了,这不会让用户感到不安 - 这将是下拉菜单的标准行为,因此他们会习惯它。

标签: vba autodesk-inventor


【解决方案1】:

我在这里找到了解决这个困境的绝妙方法:

https://sites.google.com/site/msaccesscode/forms-1/howtoclosepopupnonmodalformwhenitlosesfocus

此方法使用弹出表单的 Timer 事件来不断检查弹出表单是否为活动表单。如果是这样,表单将保持打开状态。如果没有,它会关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    相关资源
    最近更新 更多