我繼續在我簡單的圖形程序(使用C#)中編程某種鍵盤導航。我又一次遇到了麻煩。面板沒有得到重點
我的問題是,我要處理的鍵盤輸入來移動一個層。用鼠標移動圖層已經工作得很好,但控件沒有獲得焦點(KeyUp/KeyDown/KeyPress,也沒有爲此控件觸發GotFocus/LostFocus)。 由於我的類派生自Panel(並覆蓋了幾個事件),我也覆蓋了上面提到的事件,但我無法成功地觸發這些事件。
我想我可以設法使用類似於Keyboard.GetState()或ProcessCmdWnd之類的東西來實現鍵盤響應。但是:我仍然必須能夠分辨控制權何時得到關注。
有沒有或多或少的優雅的方式來添加此功能的用戶控制(這是基於面板)?
我在這裏檢查了很多線程,我可能使用this approach作爲鍵盤輸入。然而焦點問題仍然存在。
非常感謝您提前提供的信息!
伊戈爾。
p.s .:我用C#.NET v3.5編程,使用VS2008。這是一個Windows.Forms應用程序,而不是WPF。
驚人!它真的起作用,並且它很容易實現。我不知道ControlStyles類,因此不知道我可以改變它。 非常感謝:)。 – Igor 2010-08-25 02:43:21
@HansPassant在哪些情況下應該使用'Focus()'而不是'Select()'? – Medinoc 2014-04-03 10:57:54
一個正確的答案是很長的一個,請使用Ask Question按鈕。 – 2014-04-03 11:03:27