2009-10-15 3 views
0

DataGridView에서 Ctrl 키와 위쪽 화살표 키를 누르면 첫 번째 행으로 이동합니다. 내가 아래쪽 화살표로 똑같이 할 때 나는 DGV의 마지막 줄로갑니다. 어떻게 하나 개의 행을 갈 것입니다 내가 최대 CTRL + 을 다할 것을이 방향에서이 동작을 비활성화하고 나는 아래CTRL + 을 할 때 한 행 아래로 이동? 탐색 핸들러는 네비게이션 키 입력을 먹을 수 있기 때문에Ctrl + 위쪽 화살표 DataGridView 홈 =

답변

0

특정 키 또는 키 조합을 감지하면 ProcessDialogKey를 재정의하고 이벤트를 '취소'해야합니다.

0

이 때 onKeyPress 이벤트를 무시 조사 ... 당신은 ... 당신의 소유가 아닌 정확한 클래스 하지만, 시작을 선언

public class MyDataGridView : DataGridView 
{ 
    ... 
    ... 

    public override void OnKeyPress(object sender, KeypressEventArgs e) 
    { 
     trap your own "e." values 
    } 
} 
1

당신은 무시해서는 안 OnKeyPress()을 가질 수있다 OnKeyPress()로 보내기 전에.

대신 네비게이션을 처리하기 위해 명시 적으로 존재하는 ProcessDialogKey() 및/또는 ProcessDataGridViewKey()을 무시해야합니다.

ProcessDialogKeyProcessDataGridViewKey


ETA : 외람된, 일반적으로는 일반적으로 내비게이션 동작을 변경할 특히 좋은 생각이 아니다. 많은 응용 프로그램은 DataGridView를 사용하며 대부분의 응용 프로그램에서 사용하기 때문에 사용자는 일반적으로 기본 동작을 기대합니다. 기본 탐색을 변경하는 데는 예외가 있고 때로는 좋은 이유가 있지만 개인적으로 기본 동작이 마음에 들지 않기 때문에 변경하지 않아도됩니다. 이것은 물론 개인적인 의견입니다. YMMV.

관련 문제