【问题标题】:Set focus of an element from its lost focus从失去焦点设置元素的焦点
【发布时间】:2013-07-24 18:36:30
【问题描述】:

由于某种原因需要一个文本框的焦点,所以焦点再次从失去焦点的文本框设置到文本框。这会导致失去焦点事件中的堆栈溢出。

说, 一个文本框和一个按钮,现在焦点在文本框中并单击按钮。在这种情况下,需要焦点在文本框中,所以文本框的焦点方法从它失去的焦点中调用。这会导致堆栈溢出异常。

为什么会发生这种情况以及焦点如何保留在文本框本身中。

通过处理文本框的 PreviewKeyboardLostFocus,我保留了键盘焦点,但是如何在此保留鼠标焦点?

【问题讨论】:

  • 当按钮点击发生时,您可以为您的 TextBox 调用 Focus() 方法。你试过吗?
  • 我需要处理 Textbox lostfocus 中的内容。焦点不应移动到按钮。在 Textbox lostfocus 中调用 focus 方法时,会导致堆栈溢出。
  • 如果您不希望 Button 获得焦点,请为您的 Button 设置 Focusable="False"。
  • 查看这个问题的解决方案:stackoverflow.com/questions/2212999/…
  • WPF 中没有“鼠标焦点”的概念,只有“键盘焦点”和“逻辑焦点”。查看 MSDN 上的这篇 Focus Overview 文章。您可能会发现该页面上提到的 FocusManager.IsFocusScope 附加属性可以帮助您。

标签: c# wpf silverlight


【解决方案1】:

检查你是否处理了 SetFocus() 事件,你可能在那里处理了一些导致 StackOverflowException 的事情。

干杯!

【讨论】:

    猜你喜欢
    • 2013-10-02
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多