0

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

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

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

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

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

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

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

我做错了什么?

谢谢你!

4

3 回答 3

1

你需要认识上一个。赢。状态。看到这篇文章的信息:http: //blogs.microsoft.co.il/blogs/maxim/archive/2009/12/24/daily-tip-how-to-activate-minimized-window-form.aspx

于 2009-12-25T00:24:09.720 回答
1

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

请阅读本文以获取有关 WPF 中焦点的更多信息。

于 2009-04-28T12:08:46.110 回答
0

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

于 2009-05-05T21:24:46.480 回答