2012-01-27 9 views
2

KeyDown 이벤트가있는 DataGridView가 있습니다.DataGridView KeyDown 이벤트가 작동하지 않습니다.

void dataGridView1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.C && e.Modifiers == (Keys.Control | Keys.Shift)) 
    {  
     MessageBox.Show("ok"); // to test if working 
    } 
} 

키 조합을 누르면 메시지 상자가 표시됩니다.
하지만 DataGridview가 비어있는 경우 (데이터 행 없음)입니다. DataGridview에 이미 행이 있으면 코드가 작동하지 않습니다.

코드에 문제가 있습니까?

+0

디버거가 이벤트 처리기에 입력됩니까? – ken2k

+0

PreProcessMessage 또는 OnPreviewKeyDown을 사용해 보셨습니까? – pstrjds

+0

@pstrjds : 불행히도 아무 생각이 없습니다. 제발 도와 줄 수있어? – yonan2236

답변

0

datagridview에는 자체 이벤트가있는 하위 컨트롤이 있습니다. 난 당신이 행과/또는 셀 keydown 이벤트를 잡을 필요가 있다고 생각합니다.

+0

어떻게? 예를 들어 주시겠습니까? 덕분에 – yonan2236

+0

나는 직접 해본 적이 없지만 이것에 대한 답변처럼 뭔가 자신의 datagridview 클래스를 정의 : http://stackoverflow.com/questions/325677/how-to-get-keypressed-keydown-events-from-datagridview- 데이터 - 셀 –

+0

thnks, 나는 이것을 시도 할 것이다. – yonan2236

1

DataGridView가 편집 모드 일 때 KeyDown 이벤트 핸들러가 실행되지 않습니다.

+0

DataGridview의 편집 모드를 비활성화했습니다. 선택한 행이 DataGridView의 짝수에 영향을 줄 수 있습니까? – yonan2236

0

원하는 키 처리를 얻으려면 DataGridView 클래스에서 파생되어야한다고 생각합니다. 또 다른 대안은 add a message filter이지만, 첫 번째 방법으로 파생 데이터 그리드로 갈 것입니다.

관련 문제