Страница 1 из 1

вопрос по Windows Forms

Добавлено: 19 мар 2010, 16:27
senator2202
Помогите, пожалуйста!
у меня есть матрица текстовых полей. Я хочу при нажатии стрелки переходить от одного поля к другому. Для этого я подписываюсь на событие 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 - строка и стобец конкретного текстового поля в матрице.

Re: вопрос по Windows Forms

Добавлено: 19 мар 2010, 17:58
rrrFer
там точно return?

Re: вопрос по Windows Forms

Добавлено: 19 мар 2010, 19:24
senator2202
не суть важно, конечно можно и break;