вопрос по Windows Forms

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
senator2202
Сообщения: 2
Зарегистрирован: 19 мар 2010, 16:22

Помогите, пожалуйста!
у меня есть матрица текстовых полей. Я хочу при нажатии стрелки переходить от одного поля к другому. Для этого я подписываюсь на событие 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;
                                 }
}
ms - это матрица текстовых полей, изображенных на скрине.
i , j - строка и стобец конкретного текстового поля в матрице.
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

там точно return?
Приглашаю на свой блог о программировании: pro-prof.com
senator2202
Сообщения: 2
Зарегистрирован: 19 мар 2010, 16:22

не суть важно, конечно можно и break;
Ответить