我有一个简单的WPF应用程序,用户可以最小化我的应用程序窗口。
用户从最小化状态恢复Window后,我需要将焦点设置为某个TextBox。
如果用户在最小化Window之前没有改变焦点,那么在恢复应用程序之后一切都很好。
但是当用户改变焦点时会出现问题。
我的窗口有Activated事件处理程序。代码如下:
private void Window_Activated(object sender, EventArgs e)
{
if (isFullView)
tbSearch.Focus();
else
tbSearch2.Focus();
}
从最小化状态恢复窗口后,事件处理程序被触发,但TextBox tbSearch无法获得焦点。
我做错了什么?
谢谢!
答案 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。