C#中Form窗體的KeyPreview屬性
一、前言
當我們使用.Net Framework編寫窗體應用程式的時候,有時需要響應窗體的按鍵訊息。
當窗體上沒有任何其他控制元件的時候,窗體是可以直接響應這些訊息的,也就是說可以正常響應鍵盤事件。
但是當窗體存在其他控制元件後,我們會發現窗體再也不會響應按鍵訊息了,因為這些訊息都由其上的控制元件所處理掉並且不再發給父窗體。
但是響應窗體上的按鍵訊息是很有必要的,這就是Form類的KeyPreview的屬性,它是可以接收得到按鍵訊息。
二、KeyPreview屬性
獲取或設定一個值,該值指示在將鍵盤事件傳遞到具有焦點的控制元件前,窗體是否將接收此鍵事件。
名稱空間:System.Windows.Forms
程式集:System.Windows.Forms(在 system.windows.forms.dll 中)
三、語法
//開啟窗體獲取鍵盤事件的焦點
this.KeyPreview = true;
1
2
屬性值:
如果窗體將接收所有鍵盤事件,則為 true;
如果窗體上當前選定控制元件接收鍵盤事件,則為 false。
預設為 false。
四、備註
當此屬性設定為 true 時,窗體將接收所有 KeyPress、KeyDown 和 KeyUp 事件。
在窗體的事件處理程式處理完該按鍵事件後,然後將該事件分配給具有焦點的控制元件。
如果在失去焦點的情況下,還要窗體接收按鍵訊息,即響應鍵盤事件,此時可手動進行設定。
如果窗體沒有可見或啟用的控制元件,則該窗體會自動接收所有鍵盤事件。
————————————————
版權宣告:本文為CSDN博主「嘉辰-何程龍」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_44034384/article/details/105944455