Сочетание клавиш для «Tab Out» сетки с бесконечными рядами? - PullRequest
1 голос
/ 28 апреля 2009

Я столкнулся с проблемой, которую, я уверен, другие поразили и решили. В нескольких местах в моем приложении есть «Сетки». Точнее говоря, UltraWinGrid от Infragistic - но идея в том, что внутри сетки нажмите Tab , чтобы переместиться к следующей ячейке сетки. Когда вы находитесь в последней ячейке строки, нажатие Tab переместит вас в следующий ряд. Если вы находитесь в последней ячейке последнего ряда, нажатие Tab переместит вас в новый ряд.

Проблема в том, что форма состоит не только из одной сетки. В какой-то момент - вы хотите выделить «из» этой сетки и перейти к следующему элементу управления.

Я подумал, что было бы целесообразно использовать сочетание клавиш для обеспечения этого альтернативного поведения Tab .... но похоже, что все параметры выбраны.

Shift + Tab = табуляция назад

Ctrl + Tab = вкладка между окнами в приложении (и у нас есть дочерние MDI, а что нет, поэтому мы не хотим это менять)

Alt + Вкладка = Windows ярлык для изменения приложений

Ключ Windows + Вкладка = То же, что и выше, с новым графическим интерфейсом

В сетках, у которых нет неограниченного количества строк - я могу сделать обычную вкладку, чтобы убрать их из сетки. Но в этом случае нет конца сетки.

У кого-нибудь есть какие-нибудь предложения / советы как решить эту проблему? Я действительно хочу позволить нашим пользователям полностью перемещаться по приложению, не касаясь мыши.

Ответы [ 3 ]

1 голос
/ 29 апреля 2009

Как вы думаете, каковы ваши шансы на то, чтобы ваши пользователи знали эту комбинацию клавиш?

Может быть Alt + Shift + Tab (это хорошо работает в моих руках).

Однако вы не должны принимать такого рода решения, не протестировав его с пользователями. Это даст вам два выхода: А) Вы можете увидеть, действительно ли ваши пользователи так поступают, и Б) вы могли бы обучить свою базу пользователей.

1 голос
/ 29 апреля 2009

Если у вас есть одна сетка среди элементов управления типа формы (например, текстовые поля, поля со списком), вы можете использовать Esc для переключения из сетки на один из элементов управления формы, либо на первый элемент управления или последний, имеющий фокус.

Если у вас несколько сеток (или нескольких панелей), Esc может поставить фокус на текущую сетку / панель в целом. Tab и Shift + Tab перемещает фокус между сетками / панелями. Другие клавиши обеспечивают короткие пути для управления панелями (например, открытие, закрытие, изменение размера, выбор столбца). Нажатие Esc , когда фокус находится на всей панели / сетке, возвращает фокус обратно в сетку / панель.

В любом случае я бы по-прежнему использовал Ctrl + Tab и Shift + Ctrl + Tab входить и выходить из сетки или между сетками, а также между окнами в MDI. По сути, обрабатывать сетки (или панели) в каждом окне как «окно в окне». Это имеет смысл, если окна связаны так же, как сетки в окне (например, все объекты данных, которые отображаются связаны друг с другом). Если пользователь находится в сетке, то Ctrl + Tab выходит из сетки, но остается в окне (или перемещается к следующей сетке / панели в этом окне). Как только у пользователя заканчиваются места в окне, Ctrl + Tab переходит к следующему окну (или к первой панели / сетке в этом окне).

1 голос
/ 28 апреля 2009

Что вы подразумеваете под "бесконечным" числом строк ... делает ли вкладку в этой сетке, когда вы подходите к концу, просто продолжайте создавать новые пустые строки.

Вы можете проверить, были ли они в последней ячейке последней новой строки, когда они нажимают Tab и, если это так, .Focus () следующий элемент управления в winForm. В качестве альтернативы, вы можете просто полностью захватить Tab в качестве управляющей навигационной клавиши и позволить им использовать клавиши со стрелками для перемещения по сетке.

...