2017-12-26 11 views
-1

Enter 키를 누르면 텍스트 표에있는 특정 열의 텍스트 데이터를 텍스트 상자로 전달해야합니다. 키 다운 이벤트가 해고되지 않아서 그렇게 할 수 없습니다.내 Windows 양식의 데이터 그리드에서 키를 눌러도 키를 열 수 없습니다.

if e.keycode = keys.enter Then 

    "My Code Here" 

    End If 

그리드가 키 다운 이벤트에 응답하도록하려면 어떻게해야합니까? P. - 내 양식의 KeyPreveiew 속성이 true로 설정되었습니다.

+0

불분명 함. 어떤 KeyDown 이벤트? 양식 용 또는 그리드 용? KeyPreview가 true이면 양식의 KeyDown을 얻습니다. – Steve

+0

그리드의 키 누르기. 여러 장소에서 KeyPreview 속성이 특정 이벤트에 응답하는 모든 컨트롤에 대해 true로 설정해야하는 경우가 많았습니다. – user1508599

+0

KeyPreview = True를 설정하면 해당 이벤트에 대해 KeyDown 이벤트 처리기를 추가해야합니다. 그리드를위한 양식이 아닙니다. KeyPreview가 true이면 양식이 이벤트를 가로 채고 그리드에 도달하지 않습니다. KeyPreview = False로 설정하면 Grid는 KeyDown 이벤트 – Steve

답변

0

양식을 작성 하시겠습니까?

If e.KeyCode = Keys.Enter Then 
    "my code" 
end if 

신고 해 보셨습니까?

Public Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Int32) As UShort 

if GetAsyncKeyState(key number) then 
    "my code" 
    EndIf 
+0

코드의 문제가 아닙니다. 내가 작성한 코드가 내 Grid의 KeyDownEvent에 저장됩니다. 컴파일러가 코드에 전혀 접근하지 못하면 해고 당하지 않습니다. 내 Grid가 KeyDownEvent를 발생시키지 않습니다 – user1508599

+0

FYI VB.NET은 대소 문자를 구별하지 않습니다. 예를 들어,'e.keycode'와'e.KeyCode'는 컴파일러와 같은 것으로 계산됩니다. –

+0

@VisualVincent 잘 알고 있습니다. 큰 vb.net 코더가 아니라, 가능하다면 ID가 도움이된다고 생각했습니다. 죄송합니다. –