【问题标题】:WPF: LostFocus as in Old WinFormsWPF:在旧 WinForms 中的 LostFocus
【发布时间】:2013-05-29 08:15:05
【问题描述】:

经过相当多的研究,我没有得到它,我怎样才能像我们在 Winforms 中那样实现简单的 Lostfocus。在 Windows 窗体控件中,我们通常使用 LostFocus,当有人按 TAB 键失去焦点或使用鼠标选择其他控件时,我会使用它。但 WPF 并非如此。我第一次使用 LostFocus,但是当我按下 tab 时它不会触发事件。但是,当我使用鼠标单击其他控件时,它确实会正确触发。所以,这并不能解决我的问题。

其次,我尝试使用 LostKeyboardFocus,它在使用 TAB 键时会被触发,并且在少数情况下当我使用鼠标选择其他元素时,但当我从父窗口菜单中选择菜单项时不会。

另外,我可以控制用户控件,我将它放在父窗口的 TAB 控件中。但是当我按下 TAb 键时,它总是选择父窗口菜单而不是我在 UserControl 中的 TreeView。

任何建议都会有很大帮助。谢谢。

【问题讨论】:

  • 请不要在同一个问题中问两个不相关的问题。
  • 相关:stackoverflow.com/questions/5850784/… - 阅读以了解为什么焦点不是一个简单的概念。
  • 不知道为什么有人提出否定的问题。当我注意到我的代码时,我只是在询问对行为的合乎逻辑的解释,以及什么是最好的解决方法或解决方案。对不起,如果我不清楚。
  • @Daneil,很抱歉第二个问题,但我认为它不相关。无论如何,您提到的问题是该人拥有 isEdit 的特定情况。对于我的情况,这对我没有意义。这是无条件的和简单的。希望我说得通。
  • 逻辑焦点和键盘焦点的基本概念是相同的。我并不是说您的问题是重复的,但是您可以从理解所涉及的概念中受益。

标签: c# wpf lostfocus


【解决方案1】:

好吧,我对寻找逻辑推理的追求仍然没有得到满足,但我把简单的事情简单地完成了。 @Daniel,正如我所说,我认为这两个问题是相关的,答案确实是相关的。也许你可以解释我在这里作为答案的发现。

我只是将我的 Textbox 和其他控件 [TreeView] 的 TabIndex 属性设置为 1 和 2,现在当我按下 TAB 或使用鼠标选择 TreeView 项目时,我会启动 Lostfocus。并且由于我在控件中设置了选项卡索引,因此它没有选择父菜单项[它现在选择它作为最后一个]。因此,使 Lostfocus 成为我应该用于我的目的的功能。

仍然要求任何有解释或更好解决方案的人分享它。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-26
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多