【发布时间】: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