을 TabControl Tab 키를 처리 할 수있는 매우 특별한 처리가 있습니다. ProcessKeyPreview() 메서드를 재정 의하여 Ctrl/Shift/Tab을 감지 한 다음 OnKeyDown() 메서드에서 탭 선택 항목을 구현합니다. 이렇게하면 자식 컨트롤뿐만 아니라 포커스 자체가있을 때도 키 입력을 감지 할 수 있습니다. 또한 자식 컨트롤 중 하나를 사용하여 사용자 지정 Tab 키 처리를 수행하지 않도록합니다. ProcessCmdKey()를 재정 의하여 작동하도록 만들 수 있지만 탭에 응답 할 자식 컨트롤을 중단합니다.
가장 좋은 방법은 OnKeyDown() 메서드를 재정의하는 것입니다. 프로젝트에 새 클래스를 추가하고 아래 표시된 코드를 붙여 넣습니다. 엮다. 새 탭 컨트롤을 도구 상자의 위쪽에서 폼으로 끌어다 놓습니다.
using System;
using System.Windows.Forms;
class MyTabControl : TabControl {
protected override void OnKeyDown(KeyEventArgs e) {
if (e.KeyCode == Keys.Tab && (e.KeyData & Keys.Control) != Keys.None) {
bool forward = (e.KeyData & Keys.Shift) == Keys.None;
// Do your stuff
//...
}
else base.OnKeyDown(e);
}
}
Ctrl + PageUp 및 Ctrl + PageDown도 고려해야합니다.
전환 확장 방법에 대해 자세히 설명해 주시겠습니까? –
Ive가 Form KeyUp/KeyDown에 대한 이벤트 처리기를 추가했습니다. – Piglet
Form.KeyPreview = ...? –