у меня есть матрица текстовых полей. Я хочу при нажатии стрелки переходить от одного поля к другому. Для этого я подписываюсь на событие KeyUp. При нажатии стрелки влево и вправо , все получается (при нажатии влево - фокус перемещается на соседнее левое поле, при нажатии вправо - соответственно вправо). А вот при нажатии клавиш стрелка вниз и стрелка вверх ничего не происходит, хотя отладчиком все нормально заходит в обработчик события.
Вот скрин моей программы
А вот код обработчика события:
Код: Выделить всё
switch(e->KeyCode)
{
case System::Windows::Forms::Keys::Left:
{
if(j)
ms[i][j-1]->Focus();
else
if(i)
ms[i-1][size*size-1]->Focus();
break;
}
case System::Windows::Forms::Keys::Up:
{
if(i)
ms[i-1][j]->Focus();
return;
}
case System::Windows::Forms::Keys::Right:
{
if(j<size*size-1)
ms[i][j+1]->Focus();
else
if(i<size*size-1)
ms[i+1][0]->Focus();
break;
}
case System::Windows::Forms::Keys: :D own:
{
if(i<size*size-1)
ms[i+1][j]->Focus();
return;
}
}
i , j - строка и стобец конкретного текстового поля в матрице.