从最小化状态恢复/激活窗口后的WPF焦点文本框

时间:2009-04-28 11:59:14

标签: .net wpf windows event-handling focus

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

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

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

但是当用户改变焦点时会出现问题。

我的窗口有Activated事件处理程序。代码如下:

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

从最小化状态恢复窗口后,事件处理程序被触发,但TextBox tbSearch无法获得焦点。

我做错了什么?

谢谢!

3 个答案:

答案 0 :(得分:1)

很难说不知道isFullView设置的是什么,但我可以告诉你Focus()设置逻辑焦点,而不是键盘焦点。如果焦点范围是活动焦点范围,则控件将仅具有键盘焦点。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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