【发布时间】:2018-09-05 20:46:40
【问题描述】:
我正在使用 MS Access 2010 开发图书馆系统。挑战之一是我们让盲人和其他视障用户访问该系统。
他们使用 NVDA,一种屏幕阅读软件,问题是该软件不会立即读取组合框的内容。为了解决这个问题,必须按 CAPSLOCK+UP 或 INSERT+UP(NVDA 命令)来读取当前焦点所在的行。所以他们目前正在手动逐行执行此操作以了解他们在哪里。
我曾想过通过 Sendkeys 来自动执行此操作,但据我所知,除了 Alt、Shift 和 Ctrl 之外,没有其他方法可以组合键。这是我正在使用的一小段代码,以便向下键下拉组合框:
Private Sub Username_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyDown Then
Me.ActiveControl.Dropdown
End If
End Sub
我想添加到此代码中,以便按下 Up 和 Down 键触发通过 INSERT+UP 的 Sendkeys 或其他我不知道的方式读取组合框。这可能吗?有什么想法吗?
【问题讨论】:
-
您知道替代键的字符简写,对吗?
-
基本语法很好的解释:contextures.com/excelvbasendkeys.html
-
感谢您的链接。我知道速记键,但使用 Sendkeys 你只能组合 Alt、Shift 或 Ctrl。如果我输入 {INSERT}{UP} 之类的东西,它会触发一个然后另一个,我不会得到我想要的结果。也许真的没有办法用 Sendkeys 或 SendInput 做到这一点,我不知道,但由于我想其他人也想组合不同的键,所以有人可能会解决这个问题
-
只是我大声打字....您是否考虑过您可能要求 Access 甚至 VBA 执行它不一定能够执行的操作?我很少发现自己使用 INSERT 作为控制键,例如 Shift、Ctrl 和 Alt。 {INSERT} 具有基于 O/S 的操作功能。这就是为什么它通常不用作控制键的原因。作为副手,Shift/Ctrl/Alt 是特定于应用程序的,没有真正的 O/S 指定功能;另外,Windows 使用 Ctrl 作为登录功能,但仅在登录期间使用。
标签: ms-access combobox accessibility nvda