예, 문제가 없습니다. 나만의 TableLayoutPanel 재정의를 만들고 커서 키를 처리하여 원하는 것을 얻을 수 있습니다. 프로젝트에 새 클래스를 추가하고 아래 표시된 코드를 붙여 넣습니다. 엮다. 새 패널을 도구 상자의 맨 위에서 양식으로 가져와 이전 패널을 바꿉니다.
using System;
using System.Windows.Forms;
class MyLayoutPanel : TableLayoutPanel {
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
var ctl = this.FindForm().ActiveControl;
if (ctl.Parent == this) {
int col = this.GetColumn(ctl);
int row = this.GetRow(ctl);
if (keyData == Keys.Left && col > 0) {
var newctl = this.GetControlFromPosition(col - 1, row);
if (newctl != null) newctl.Focus();
return true;
}
// etc..
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
니스. 나는 (지금 삭제 된) 나의 대답 안에 문제의 본질을 깨닫지 못해 죄송합니다. –