形式没有得到适当的关注c#

时间:2012-02-07 10:33:07

标签: c# winforms focus

我写了一个小表单应用程序,它只包含文本框。我已经通过使用低级键盘钩子启用了快捷键,以便在需要时为应用程序提供焦点。 一切正常,我按下快捷键,即(左控制键)+(左控制键)第一次应用程序得到适当的控制(焦点)。 但是当我停用并重做快捷键时,任务栏上的应用程序图标开始闪烁,表单没有聚焦,标题栏显示为灰色。

更多信息:

  1. 关于停用时,表单的不透明度会降低,但会保持在最顶层,因此表单在屏幕上显示的整个时间
  2. 此表单是从应用程序中的另一个类激活的。
  3. 在激活事件中,窗体的不透明度增加,因此现在非常清晰可见
  4. 我通过使用form.Activate()来关注应用程序。我也尝试过.Visible但没有运气。 激活仅适用于第一次,发布任务栏中的图标闪烁。

    有没有人知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

这个答案也适用于你: https://stackoverflow.com/a/3789985/64121。您需要使用AttachThreadInput API函数才能将焦点从其他应用中移开。