如图所示:
我想在每次点击后删除突出显示,因为我已将acceptbutton和ActiveControl设置为此程序的“相等”按钮 我希望在键盘上按 Enter 键时,不会输入突出显示的按钮文本,而是输入AcceptButton。任何的想法? 感谢。
答案 0 :(得分:0)
我认为这个问题与How do I prevent WPF buttons from remaining highlighted after being clicked?
重复以下是解决方案:
按钮接受输入焦点后会发生什么 被点击,就像你点击它时任何其他控件一样。
Windows指示控件具有输入焦点的方式 (至少在Aero主题下)是一个微妙的蓝色亮点。
特别是对于按钮控件,当它具有输入焦点时, 只需按 Enter 键即可#34;推送"那个按钮。 这就是为什么保持亮点是非常重要的,所以 用户知道会发生什么。
更好的解决方案是将焦点设置为您的不同控件 用户单击按钮后立即显示窗口。那样, 它将不再自动突出显示,也不会执行任何操作 当用户按下 Enter 时自动触发 键。 (这是您正在尝试的真正的可用性问题 解决,即使你还不知道。没有什么比一个更令人困惑 用户实际尝试时无意中点击了按钮 输入内容。)
你可以阻止该按钮完全获得焦点 通过将其
Focusable
property设置为false,但我会非常 非常推荐这个。一旦你完成了这个,就没有了 用户按"按"按钮仅使用键盘。 精心设计的应用程序应始终始终可供用户访问 或者不喜欢或不能使用鼠标。
答案 1 :(得分:0)
鉴于您“希望{{1}}的操作发生,而不是在键盘上按 Enter 键时输入突出显示的按钮文本。”, 一个解决方案是让每个按钮的click处理程序将焦点放在 = 上。
Google“winforms control set focus”代码详情。
这将保留辅助功能:仅限键盘的用户可以 Tab 到所需的按钮,按 Enter “点击”按钮。然后,您的点击处理程序将焦点放在 = 上,因此很明显另一个 Enter 将执行 = 操作
它还向任何用户明确表示他们可以随时按 Enter ,以获取 = 。
另一方面,用户经常看到 = 突出显示可能会“令人不安”。需要用户测试......