這是一個主觀問題,但我需要意見。對於在按鍵時隱藏自身的窗口,預期行爲是什麼
我有一個WinForms C#應用程序,它的窗口通過特定的按鍵(Enter或Escape)和可能的修飾符(例如Ctrl-Enter)隱藏自己。隱藏在KeyDown或KeyPress上時,在我的窗口隱藏自身後變爲活動狀態的另一個應用程序會接收該按鍵的KeyUp事件。通常情況下,它不應該影響其他應用程序,但其中一些應用程序會對KeyUp做出反應。例如,即使TweetDeck沒有收到KeyDown/KeyPress,TweetDeck也會在「Enter」KeyUp上發送當前正在編輯的消息。
所以我想,很好,我會成爲一個好公民,我會隱藏在KeyUp上。但是這並不正確。如果我只是尋找鑰匙,我正在做我責怪別人的事情!如果我嘗試創建一個匹配KeyDown/KeyUp的歷史記錄,我會過度複雜化我的代碼(修飾符會自己生成密鑰)。
我該怎麼辦?實施良好的應用程序應該做什麼?
但是,如果用戶按下該鍵並將其按住一秒鐘,該怎麼辦?如果它不隱藏在KeyDown上,他會感到困惑。如果KeyUp不在那裏,你還想吃什麼? – 2008-11-17 19:10:45
你什麼都不做。其他解決方案將不會採取行動,直到關鍵要麼... – Tim 2008-11-17 19:12:59
您的解決方案有類似的相同問題...應用程序隱藏,但沒有發生,直到鑰匙被釋放。正如我提出的答案 - 這是一個黑客攻擊。 – Tim 2008-11-17 19:14:15