2012-02-07 56 views
0

我寫了一個小型窗體應用程序,它只包含文本框。我通過使用低級別鍵盤掛鉤啓用了快捷鍵,以便在需要時將焦點集中到應用程序。 所有工作正常,我第一次按下短鍵即(左控制鍵)+(左控制鍵)應用程序得到適當的控制(焦點)。 但是,當我停用並重做快捷鍵時,任務欄上的應用程序圖標開始閃爍,表單不獲得焦點,標題欄變灰。窗體沒有得到適當的重點在C#

更多信息:

  1. 去激活形式的不透明度降低,但它仍然在上面,所以整個時間會顯示在屏幕
  2. 這種形式是從另一個類激活的形式,內應用。
  3. 在窗體的激活事件不透明度增加,使得它現在過得很好可見

我用form.Activate焦點移到應用程序()我也曾嘗試from.Visible,但沒有運氣。 激活僅適用於第一次,發佈任務欄中的圖標閃爍。

有沒有任何想法爲什麼會發生這種情況?

+0

這很正常,你不能從另一個應用程序竊取焦點。你應該使用RegisterHotKey()而不是鉤子。 – 2012-02-07 11:12:15

回答

1

此答案同樣適用於您: https://stackoverflow.com/a/3789985/64121。您需要使用AttachThreadInput API函數,以便從另一個應用程序竊取焦點。

+0

感謝您指出的解決方案,但部分工作......現在激活工作沒有問題,但問題是,有時我的應用程序採取了重點,它不會停止重複點擊鼠標。只有當我點擊我的應用程序然後點擊其他應用程序時才解決這個問題。我在這裏看到類似的問題,http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/546858a1-5122-478a-944d-8c6e8383b905/但我無法理解他的解決方案,他最終提供了。有人可以請幫忙。 – vikramaditya234 2012-02-10 12:04:52