MS Access 2016:CTRL+A 保存表单?
Posted
技术标签:
【中文标题】MS Access 2016:CTRL+A 保存表单?【英文标题】:MS Access 2016: CTRL+A saves the form? 【发布时间】:2019-03-18 22:42:33 【问题描述】:我有一个奇怪的问题,我不知道如何追踪。
我有一个使用_AfterUpdate
事件自行关闭的表单。我偶然发现,当我在 TextBox 控件中并尝试使用 CTRL+A
选择所有文本时,表单会更新。这会导致 _AfterUpdate 运行并关闭窗体。效果是按下CTRL+A
现在是“保存并退出”而不是“选择所有文本”,正如预期的那样。
我已经挖掘了我所有的事件,它们都没有像 CTRL 或 A 这样的键。我只有一个名为“提交”的按钮,它是默认按钮。我还没有找到任何其他导致这种行为的组合键。
有人知道在 TextBox 中按 CTRL+A 会更新表单的任何原因吗?
奖励积分:有人知道我如何追踪正在发生的事情吗?如何打破动作以查看捕获此关键组合的内容?我该如何解决这个问题?
当前解决方法:
我现在使用提交按钮按下标志和_BeforeUpdate
事件来确定是否按下了 Sumbit 按钮,因此如果未按下按钮,我可以取消更新。这种变通方法的副作用是现在按下CTRL+A
什么都不做。它不会全选,但至少它也不会提交表单。现在我对CTRL+A
的去向感到双重困惑。
【问题讨论】:
【参考方案1】:MS-Access 文本框对 Ctrl+A 没有反应。要选择文本框中的所有文本,请单击其关联的标签,或按 TAB 键进入。
Ctrl+A 始终选择所有记录(以连续形式或数据表)或当前记录(以单个形式)。这会自动保存当前记录,调用AfterUpdate
。
编辑:关于在文本框中模拟 Ctrl+A 的一些想法:
设置Form.KeyPreview
= True
在Form_KeyDown
中捕获Ctrl+A
使用Screen.ActiveControl
确定主动控制
如果是文本框,请使用SelStart
和SelLength
选择其内容。
【讨论】:
圣洁睾丸星期二!我一直在追赶我对界面的完全误解。多么可耻。这是不幸的。也许问题应该是“如何使用 CTRL+A 在文本框中全选”。 :D 我想你可以用KeyDown
事件捕获它,然后使用SelStart
和SelLength
。
谢谢。如果必须,我会这样做,但对每个控件都这样做会很痛苦......也许我可以为每个文本框控件编写事件创建脚本......
可能在表单级别(并使用公共功能,以便您可以重复使用它们),请参阅编辑。
哦,我刚刚重新发明了***.com/a/47737371/3820271 ...以上是关于MS Access 2016:CTRL+A 保存表单?的主要内容,如果未能解决你的问题,请参考以下文章