【问题标题】:WPF focus textbox after Window is restored/activated from minimized stateWindow 从最小化状态恢复/激活后的 WPF 焦点文本框
【发布时间】:2009-04-28 11:59:13
【问题描述】:

我有一个简单的 WPF 应用程序,用户可以在其中最小化我的应用程序窗口。

用户从最小化状态恢复 Window 后,我需要将焦点设置到某个 TextBox。

如果用户在最小化窗口之前没有改变焦点,那么在恢复应用程序之后一切都很好。

但是当用户改变焦点时问题就来了。

我的窗口已激活事件处理程序。代码如下:

private void Window_Activated(object sender, EventArgs e)
{
   if (isFullView)
       tbSearch.Focus();
   else
       tbSearch2.Focus();            
}

Window 从最小化状态恢复后,事件处理程序被触发,但 TextBox tbSearch 没有收到焦点。

我做错了什么?

谢谢!

【问题讨论】:

  • isFullView 是做什么的?你应该显示它的代码。

标签: .net wpf windows event-handling focus


【解决方案1】:

你需要认识上一个。赢。状态。请参阅此帖子的信息:http://blogs.microsoft.co.il/blogs/maxim/archive/2009/12/24/daily-tip-how-to-activate-minimized-window-form.aspx

【讨论】:

  • 此链接已损坏。当我尝试点击它时说数据库错误。
【解决方案2】:

很难说不知道isFullView 设置为什么,但我可以告诉你Focus() 设置逻辑焦点,而不是键盘焦点。只有当它的焦点范围是活动的焦点范围时,该控件才会有键盘焦点。

请阅读this article,了解有关 WPF 中焦点的更多信息。

【讨论】:

  • 此时 isFullView = true 我当前的解决方案在最小化按钮单击时调用 tbSearch.Focus()
【解决方案3】:

尝试确保在调用处理程序时 TextBox 是否可见。也许您有一些触发器或其他一些东西在设置焦点之后显示 TextBox。

【讨论】:

    猜你喜欢
    • 2014-04-10
    • 2011-07-02
    • 2017-12-31
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多