一千萬個為什麽

搜索

失去焦點的窗口

在我的應用程序中,當我顯示一個消息框並且用戶單擊其任何按鈕(例如OK或CANCEL)時,我的窗口失去焦點並被最小化。

我曾嘗試使用set focus也使用win32 API SetForegroundWindow(window hWnd)來保持窗口活動。我註意到如果在我的窗口後面打開了另一個應用程序,我的應用程序窗口在單擊消息框按鈕後失去了焦點,但是如果它是桌面上唯一可見的窗口,它可以正常工作。我正在使用Windows 7,但我在Win XP中也遇到了同樣的問題。

我正在使用GradientForm。並顯示messagebox,我使用MessageBox.Show(“消息文本”,“”,MessageBoxButtons.OK,MessageBoxIcon)。沒什麽不同。

最佳答案

當消息框關閉時沒有啟用窗口時會發生這種情況。 Windows被迫找到另一個窗口來提供焦點,並將從另一個應用程序中選擇一個。還解釋了為什麽沒有其他窗口時這不是問題。

確保不要禁用Windows。換句話說,避免這樣:

   this.Enabled = false;
   MessageBox.Show("oops");
   this.Enabled = true;

將Enabled設置為true就像為時已晚。

轉載註明原文: 失去焦點的窗口