相信有很多人在處理需要置頂的訊息視窗,但是因為如果設定好了 TOPMOST 後該訊息視窗將會把所有的視窗遮住,唉真是半殘功能....~_~" 後來在找了 GOOGLE 大神後總算是被我找到了解決辦法..... 參考 POST : http://hi.baidu.com/smilewave/blog/item/7cd7fc16f77bd356f2de3231.html 為了防止該文章不見,本人將內容轉寫如下: 如何使C#中TopMost對話框僅對Application有效 C# 中的非模態對話框對話框默認是不能停留在Application頂部的。當非模態對話框失去焦點時,就會被別的對話框所遮擋,除非該對話框的 TopMost屬性設置成為true。然而,當TopMost屬性設置成true以後,該對話框對所有Application來說都是位於頂部的,即使打 開該對話框的Application失去焦點,TopMost的對話框仍然位於頂部,這樣會造成對其他Application窗口的遮擋。 解決這個問題的辦法之一是設置非模態對話框的Owner屬性。非模態對話框的Owner用於記錄打開該對話框的父窗口,默認為null。當設置了 Owner屬性以後,不用設置TopMost屬性,非模態對話框也會始終位於Owner窗口的上方,但不會對Owner之外的窗口造成遮擋。 總而言之,就是把 Topmost 設為 false 然後把 訊息視窗 New 出來後 在 Show 之前把 Owner 設定為 this 再 Show,這樣 訊息視窗 就只會把所需要遮住的視窗遮住而不會去影響其他的視窗或是程式。