2009-01-30 9 views
4

사용자가 아래쪽 화살표를 눌렀을 때 KeyPress 이벤트가 시작되지 않는 이유를 알고 있습니까? KeyDown 이벤트에서 찾아야합니다. 이것은 내가 잘못하고있는 것입니까? KeyPress 이벤트의 문서에 따르면아래쪽 화살표가 실행되지 않습니다. KeyPress 이벤트

+0

음 관해서이 무엇입니까? 어느 언어로 말하는거야? 어떤 API를 사용하고 있습니까? 당신은 꽤 모호합니다. 그래서이 질문은 여러분이 좀 더 구체적이지 않은 이상 대답 될 것이라고 생각하지 않습니다. – CalvinR

+1

문서를 읽어주세요. http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress.aspx – shahkalpesh

답변

14

(가정 당신은 윈폼을 사용하는) :

KeyPress 이벤트가 문자가 아닌 키에 의해 발생하지 않습니다; 그러나 문자가 아닌 키는 KeyDown 및 KeyUp 이벤트를 발생시킵니다.

아래쪽 화살표 키는 문자 키가 아니므로이 이벤트를 발생 시켜서는 안됩니다.

+0

개인적으로, 나는 이것을 위해 KeyUp 이벤트를 사용하는 것을 선호합니다. KeyPress 이벤트와 동시에 트리거되기 때문에 : 단추가 해제됩니다. 나는 이것이 사용자들이 익숙한 경험이라고 생각한다. –

1

사용에서 KeyDown 대신

Public Class Form1 
    Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown 
     Debug.WriteLine(e.KeyData.ToString + " KeyDown") 
    End Sub 

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress 
     Debug.WriteLine(e.KeyChar.ToString + " KeyPress") 
    End Sub 
End Class 
관련 문제