【问题标题】:WPF TextBox Focus on constructorWPF TextBox 专注于构造函数
【发布时间】:2013-04-24 09:11:01
【问题描述】:

我在关注 WPF 中 Window 中的 Control 时遇到问题。

Window 的构造函数上,我添加了一个TextBox,如下所示:

TextBox tb = new TextBox();
tb.Text = input;
tb.SelectAll();
tb.Focus();

我还在Window加载事件上再次调用Focus()方法。

问题是有时窗口聚焦而有时却没有!这是一种非常奇怪的行为,我想知道是否有人遇到过同样的问题并且可以给我一些指导。

-- 更新

我找到了导致问题的原因,但还没有解决方案。我正在使用 WIA 扫描文档,这会显示一个 ProgressBar,这会使我的整个应用程序失去焦点。

我试过打电话给Application.Current.MainWindow.Focus(),但这并不能恢复焦点,有什么建议吗?

【问题讨论】:

  • Window_Loaded 事件结束时执行此操作,可能是您将焦点设置到其他控件。
  • 将 Focus() 调用移至 Window.Loaded 事件是否有帮助?编辑:Habib 打败了我 :)
  • 正如我在问题中提到的,我确实在 Loaded 事件上再次致电 Focus() 无济于事。
  • @ChrisjanLodewyks,加载的事件在哪里?这些行应该是事件的最后一行。
  • @Habib,它是加载事件中的唯一行。

标签: c# wpf


【解决方案1】:

根据记忆,我认为最后一次创建窗口是 Windows.Activated 事件。您可以尝试在该事件上运行您的焦点代码吗?

【讨论】:

    【解决方案2】:

    就像我在更新的问题中提到的那样,由于显示了另一个对话框,我的整个应用程序失去了焦点,我最终使用的是:

    Application.Current.MainWindow.Activate();
    

    这会将焦点返回到我的应用程序,当显示带有TextBoxWindow 时,Focus 将应用于此控件。

    希望它对某人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多