enter key press
의 코드 블록을 datagridviewcell
편집 모드에서 실행하려고합니다. datagridviewcell
의 입력 키를 editing mode
에 찾을 수 없습니다. 다음과 같이데이터 블록 뷰의 입력 키를 누를 때 코드 블록을 실행합니다.
답변
당신은 dataGridView1_KeyDown
이벤트를 사용해야합니다 :
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress=true;
//block of code
}
}
에서 KeyDown이 편집 모드, 서브 클래스 DataGridView에있는 셀에 대한 작업과 같은 ProcessDialogKey를 대체하지 않습니다.
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter)
{
// Your code here
return true;
}
return base.ProcessDialogKey(keyData);
}
우리가 원하는 것은, 셀 1의 엔터 키를 누를 때 코드의 block1을 실행하고 셀 2의 엔터 키를 누르면 코드 블록 2를 실행하는 식입니다. 어떤 block1의 코드는리스트 뷰를 포함하는 모달 박스를 보여줄 것입니다. – user2541238
입력 키를 가로 채고 코드를 추가하여 내가 지정한 대화 상자를 표시하는 방법을 보여 줬습니다. – Gary
@ user2541238'CurrentCell' 속성을 참조하여 코드를 적절하게 실행하기 위해 편집 모드에있는 셀을 확인해야합니다. –
클릭하면 어떤 셀이 클릭되었는지 확인할 수 있습니다. 이것은 VB.net에 있습니다. 게리가 이미 제안한 것을 확장했습니다.
공공 클래스 Custom_DataGridView 상속 System.Windows.Forms.DataGridView
공공 이벤트 DataGridView_CustomEnterKeyPressed (DataGridViewCell으로 ByVal의 keyData 키로서, ByVal의 CurrentCell)
보호 오버라이드 (override) 기능 ProcessDialogKey (ByVal의 keyData 키로) 부울로 만약 keyData = Keys.Enter Then RaiseEvent DataGridView_CustomEnterKeyPressed (keyData, CType (Me, DataGridView) .CurrentCell) 'Return true'다음 셀로 이동하고 싶지 않다면 이것을 연다. n로 이동 열에 ext 셀. 최종면 반환 MyBase.ProcessDialogKey (keyData) 최종 기능
최종 클래스
사용하는 대신 상자 DataGridView에 통제와 양식에 아래 그림과 같이 다음은 DataGridView_CustomEnterKeyPressed 이벤트를 처리해야이 Custom_DataGridView 이 사용자 정의 컨트롤을 추가했습니다.
개인 서브 DataGridNameYouHaveUsed_DataGridView_CustomEnterKeyPressed은 (ByVal의 keyData는 System.Windows.Forms.Keys으로 DataGridViewCell으로 ByVal의 CurrentCell)는 "(셀 DataGridView_CustomEnterKeyPressed 이벤트 처리기에서"DataGridNameYouHaveUsed.DataGridView_CustomEnterKeyPressed 있는 MsgBox를 (핸들 + CurrentCell.ColumnIndex.ToString + ", "+ CurrentCell.RowIndex.ToString +") ") End Sub
다른 사람들 (나 같은)이 솔루션을 검색 할 때 유용 할 수도 있으므로 이미 게시 한 것일 수도 있습니다.
- 1. 3 키를 누를 때 키보드 입력 버그
- 2. 키를 누를 때 키워드 찾기
- 3. Enter 키를 누를 때 Sublime의 주석 블록을 자동으로 "계속"하시겠습니까?
- 4. 키를 누를 때 소리를내는 방법
- 5. Shift 키를 누를 때 감지합니다.
- 6. 절전 프로그램 키를 누를 때
- 7. 메서드가 실패 블록을 실행합니다.
- 8. 키를 누를 때 함수로 이동
- 9. 키를 누를 때 리디렉션 문제
- 10. 키를 누를 때 수행되는 동작
- 11. 키를 누를 때 일시 중지
- 12. Enter 키를 누를 때 EditText를 지우십시오.
- 13. C++ : 키를 누를 때까지 while 루프를 실행합니다. Esc?
- 14. 이스케이프 키를 누를 때 입력 값을 변경할 수없는 이유
- 15. asp.net에서 Tab 키를 누를 때 입력 유형을 제한하는 방법은 무엇입니까?
- 16. jQuery를 TextExt 플러그인 : 키를 누를 때
- 17. 요리사가 블록을 실행합니다
- 18. 다음 키를 누를 때 다음 필드로 이동
- 19. jQuery를이 키를 누를
- 20. 키를 누를 때 매크로 실행 - 스페이스 키
- 21. , 나는 버튼이 키를 누를 때 HTML
- 22. ExtJs가 Enter 키를 누를 때 TAB 시뮬레이션
- 23. Tab 키를 누를 때 DataGrid에서 선택이 손실됩니다.
- 24. Enter 키를 누를 때 어떤 작업을 수행
- 25. 사용자가 키를 누를 때 시간을 얻습니다.
- 26. Enter 키를 누를 때 페이지가 리디렉션되지 않습니다.
- 27. 키를 동시에 누를 때 키를 놓을 때 KeyListener가 트리거되지 않습니다
- 28. KendoUI Grid Enter 키를 누를 때 저장
- 29. 사용자가 키를 누를 때 메시지 표시
- 30. 파이썬은 ENTER 키를 누를 때 루프를 종료합니다
조건 – user2541238
을 실행할 위치가 datagridviewcell 편집 모드에서도 작동합니다. –
인 경우 코드 블록 – user2541238