好吧,这个问题已经困扰我一段时间了。重现方法:
- 打开 Windows 资源管理器。
- 按 Alt+D 将焦点设置到导航栏。
- 开始输入(有效)路径,即“\Progr”。
- 按 TAB 键并“Program Files”被选为最佳匹配并填充到导航栏中。
- 按 Enter 键(\Program Files 在文件夹窗格中打开)。
- 开始输入文件夹的名称,它将在文件夹窗格中被选中(即增量搜索。在 XP 中,您必须按 TAB 三次才能到达那里,而 Windows 7 会自动将焦点放在那里。非常好)。
现在,打开一个程序,比如说 Excel。
- 按 Ctrl+O 打开打开文件对话框。
- 按 Alt+D 将焦点设置到导航栏。
- 开始输入(有效)路径,即“\Progr”。
- 按 TAB 键并焦点现在设置在右侧的搜索文本区域。导航栏被重置为其最后一个值。
这是为什么?这非常烦人,并且阻止我通过键盘快速导航到目录。
此外,如果您按下向下箭头键而不是 Tab 键来选择建议的文件夹路径,然后按 Enter,焦点不会像在资源管理器中那样设置在文件夹窗格上。如果您开始键入以选择目录,导航栏仍具有焦点,您必须按 TAB四次将焦点设置到文件夹窗格。
这让我很恼火,因为我几乎只使用键盘来执行 Windows 中的操作。这里有人知道为什么 Windows 中的资源管理器和文件对话框之间的这种行为不一致吗?
雷蒙德·陈,如果你在这里,我肯定需要你的意见。
答案1
回顾
让我们首先确定使用Tab通常循环遍历 Windows 对话框中的元素。
如果我们选择面包屑栏在打开常用文件对话框或 Windows 资源管理器中,然后按Tab,焦点将移动到相邻的搜索/过滤盒子。
在面包屑栏中输入内容时,会打开一个弹出列表。这两种情况也是相同的:
问题
问题是,如果你按下Tab 现在。
Windows 资源管理器将聚焦列表,如下所示:
但通用对话框将把焦点移动到搜索框。
结论
首先请注意,Down在两种情况下,按下该键都会将焦点移至列表。但您会发现这没什么用(正如您已经注意到的)。
通用对话框和 Windows 资源管理器似乎都使用相同的面包屑控件。那么为什么它们的行为不同呢?
当我在自动完成建议列表中选择一个条目并按时Enter,面包屑栏将发送一个窗口消息将此情况告知应用程序的其余部分。
shell 团队决定,只有收到该消息时,才将通用对话框中的文件列表切换到新选择的路径。Explorer
团队决定将焦点另外放在文件列表中。
这是为什么?
我不知道。我只知道如果你在公共对话框中按Alt+ N,它将聚焦文件名框,具有相同的自动完成功能。
在使用它达到您想要的程度后,您可以按Shift+Tab来聚焦文件列表。现在您可以聚焦文件列表并按照您习惯的方式使用它。
如果你实在无法忍受,那么就必须联系 Microsoft 支持部门,他们可能会将其升级为错误报告,谁知道呢。但我怀疑他们是否会在 Windows 的发布版本中更改这种核心行为,无论它有多么错误(如果你关注 Raymond Chen 的博客,你就会知道这是真的)。