Да, нет проблем.Просто создайте свое собственное переопределение 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);
}
}