【发布时间】:2009-09-14 16:19:11
【问题描述】:
我正在开发一个具有多个可停靠面板的应用程序,例如 Visual Studio。在某些时候,菜单的加速键停止工作。它们有时会根据当前处于活动状态的面板起作用。当它们不工作时,按 alt 键将焦点设置到菜单栏并在相应字符下显示下划线,但按任何字符都不会显示菜单。
我一直在努力解决这个问题,想知道是否有更简单的方法来找出这些按键发生了什么。
【问题讨论】:
我正在开发一个具有多个可停靠面板的应用程序,例如 Visual Studio。在某些时候,菜单的加速键停止工作。它们有时会根据当前处于活动状态的面板起作用。当它们不工作时,按 alt 键将焦点设置到菜单栏并在相应字符下显示下划线,但按任何字符都不会显示菜单。
我一直在努力解决这个问题,想知道是否有更简单的方法来找出这些按键发生了什么。
【问题讨论】:
首先要查看代码中的任何按键处理程序。我会在所有这些中设置一个断点,看看这些事件处理程序是否正在阻止按键被冒泡。
【讨论】:
我发现有一个控件重写了 Control.ProcessMnemonic()。有一个逻辑错误本应返回 false,却返回 true。
如果不花费大量时间,这并不是一个容易找到的错误。
【讨论】: