[TIPS] DataGridView에서 Enter 키를 누르면 옆의 셀에 포커스가 이동되도록 하는 방법
-
2012년 8월 15일 수요일 오전 5:27
[TIPS] DataGridView에서 Enter 키를 누르면 옆의 셀에
포커스가 이동되도록 하는 방법VB.NET / VB for MyLife
- 유형 변경됨 Jina LeeModerator 2012년 8월 31일 금요일 오전 6:51
모든 응답
-
2012년 8월 15일 수요일 오전 5:28
MSDN의 [DataGridView.ProcessDataGridViewKey Method] 에, DataGridView로
Enter 키를 눌렀을 때에, 오른쪽 커서 키를 눌렀을 때와 같은 동작을 실시하도록(듯이) 하는 코드가 소개되고 있습니다. 여기서 소개되고 있는
방법은, DataGridView 클래스의 상속 클래스를 작성하여, ProcessDialogKey와 ProcessDataGridViewKey
메소드를 오버라이드(override) 하고, Enter 키가 밀렸을 때에 ProcessRightKey 메소드를 호출하는
방법입니다.이 MSDN의 샘플을 참고해 작성한, Enter 키를 누르는 것으로, Tab 키를 눌렀을 때와 같이, 근처의 셀에
포커스가 이동하는 DataGridView의 상속 클래스를 이하에 나타냅니다.Imports System Imports System.Windows.Forms ''' <summary> ''' Enter키를 눌렀을때, Tab키가 눌러진것과 같은 동작을 시킨다. ''' 현재의 셀의 옆으로 포커스를 이동시킨다. ''' </summary> Public Class DataGridViewEx Inherits DataGridView <System.Security.Permissions.UIPermission( _ System.Security.Permissions.SecurityAction.LinkDemand, _ Window:=System.Security.Permissions.UIPermissionWindow.AllWindows)> _ Protected Overrides Function ProcessDialogKey( _ ByVal keyData As Keys) As Boolean 'Enter키가 눌러졌을때, Tab키가 눌러진것처럼 꾸민다. If (keyData And Keys.KeyCode) = Keys.Enter Then Return Me.ProcessTabKey(keyData) End If Return MyBase.ProcessDialogKey(keyData) End Function <System.Security.Permissions.SecurityPermission( _ System.Security.Permissions.SecurityAction.LinkDemand, _ Flags:=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _ Protected Overrides Function ProcessDataGridViewKey( _ ByVal e As KeyEventArgs) As Boolean 'Enter키가 눌러졌을때, Tab키가 눌러진것처럼 꾸민다. If e.KeyCode = Keys.Enter Then Return Me.ProcessTabKey(e.KeyCode) End If Return MyBase.ProcessDataGridViewKey(e) End Function End Class
이것과는 별도의 방법으로 [DataGridView: Make Enter Key Move to Next Column] 에서 소개되고 있다.
VB.NET / VB for MyLife
- 답변으로 표시됨 Jina LeeModerator 2012년 9월 3일 월요일 오전 7:51

