【问题标题】:MS Access 2016: CTRL+A saves the form?MS Access 2016:CTRL+A 保存表单?
【发布时间】:2019-03-18 22:42:33
【问题描述】:

我有一个奇怪的问题,我不知道如何追踪。 我有一个使用_AfterUpdate 事件自行关闭的表单。我偶然发现,当我在 TextBox 控件中并尝试使用 CTRL+A 选择所有文本时,表单会更新。这会导致 _AfterUpdate 运行并关闭窗体。效果是按下CTRL+A 现在是“保存并退出”而不是“选择所有文本”,正如预期的那样。

我已经挖掘了我所有的事件,它们都没有像 CTRL 或 A 这样的键。我只有一个名为“提交”的按钮,它是默认按钮。我还没有找到任何其他导致这种行为的组合键。

有人知道在 TextBox 中按 CTRL+A 会更新表单的任何原因吗?

奖励积分:有人知道我如何追踪正在发生的事情吗?如何打破动作以查看捕获此关键组合的内容?我该如何解决这个问题?

当前解决方法: 我现在使用提交按钮按下标志和_BeforeUpdate 事件来确定是否按下了 Sumbit 按钮,因此如果未按下按钮,我可以取消更新。这种变通方法的副作用是现在按下CTRL+A 什么都不做。它不会全选,但至少它也不会提交表单。现在我对CTRL+A 的去向感到双重困惑。

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    MS-Access 文本框对 Ctrl+A 没有反应。要选择文本框中的所有文本,请单击其关联的标签,或按 TAB 键进入。

    Ctrl+A 始终选择所有记录(以连续形式或数据表)或当前记录(以单个形式)。这会自动保存当前记录,调用AfterUpdate


    编辑:关于在文本框中模拟 Ctrl+A 的一些想法:

    设置Form.KeyPreview = True

    Form_KeyDown中捕获Ctrl+A

    使用Screen.ActiveControl确定主动控制

    如果是文本框,请使用SelStartSelLength 选择其内容。

    【讨论】:

    • 圣洁睾丸星期二!我一直在追赶我对界面的完全误解。多么可耻。这是不幸的。也许问题应该是“如何使用 CTRL+A 在文本框中全选”。
    • :D 我想你可以用KeyDown 事件捕获它,然后使用SelStartSelLength
    • 谢谢。如果必须,我会这样做,但对每个控件都这样做会很痛苦......也许我可以为每个文本框控件编写事件创建脚本......
    • 可能在表单级别(并使用公共功能,以便您可以重复使用它们),请参阅编辑。
    • 哦,我刚刚重新发明了stackoverflow.com/a/47737371/3820271 ...
    猜你喜欢
    • 1970-01-01
    • 2018-05-23
    • 2015-10-11
    • 1970-01-01
    • 2019-04-28
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多