Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   запретить default event для клавиши Tab (http://www.flasher.ru/forum/showthread.php?t=172721)

Seroy 15.12.2011 20:17

запретить default event для клавиши Tab
 
Как можно убить насмерть событие клавиши Tab для приложения во Flex? Ну или хотя бы для компонента DataGrid, со всеми его ячейками?

GBee 15.12.2011 20:24

Событие клавиши Таб?
focusEnabled = false?

Seroy 15.12.2011 20:51

Цитата:

Сообщение от GBee (Сообщение 1051743)
Событие клавиши Таб?
focusEnabled = false?

Не помогает. Я уже и в компонентах писал, что внутри столбцов:
Код AS3:

<mx:DataGridColumn headerText="Название" dataField="imya" width="100">
                        <mx:itemEditor>
                            <mx:Component>
 
                                          <mx:TextInput restrict="A-Za-zА-Яа-я0-9 " maxChars="100" focusEnabled="false" />
 
                            </mx:Component>
                            </mx:itemEditor>
                        </mx:DataGridColumn>

Не спасает. Помогает, если только запретить редактирование:

Код AS3:

<mx:DataGridColumn headerText="Название" dataField="imya" width="100">
                        <mx:itemEditor>
                            <mx:Component>
 
                                          <mx:TextInput restrict="A-Za-zА-Яа-я0-9 " maxChars="100" enabled="false" editable="false"  />
 
                            </mx:Component>
                            </mx:itemEditor>
                        </mx:DataGridColumn>

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

GBee 15.12.2011 21:06

Эээ, что-то я не понял связи первого со вторым. Вы чего в результате хотите добиться?

Genzo 16.12.2011 11:05

Код AS3:

dataGrid.addEventListener(FocusEvent.KEY_FOCUS_CHANGE , focusOut);
private function focusOut(e:FocusEvent):void
{
e.preventDefault();
}

Возможно заработает

Seroy 16.12.2011 11:41

to Genzo
 
Добавил:
Код AS3:

 import flash.events.*

Flex выдаёт:
обращение несуществующего свойства dataGrid.
обращение несуществующего свойства focusOut.

Что не так?

Добавлено через 4 минуты

Genzo 16.12.2011 11:46

Я не полный код написал, а лишь пример. Уж названия переменных можете сами изменить.

Seroy 16.12.2011 11:47

to GBee
 
Цитата:

Сообщение от GBee (Сообщение 1051755)
Эээ, что-то я не понял связи первого со вторым. Вы чего в результате хотите добиться?

Я пытаюсь запретить использование клавиш Tab, Shift+Tab в приложении. Или хотя бы для dataGrid. Пользователь редактирует одни ячейки, другие ему недоступны. Но если он пользуется клавишами Tab, Shift+Tab, всё недоступное сразу становится доступным.

Genzo 16.12.2011 11:48

Код AS3:

<mx:DataGridColumn headerText="Название" dataField="imya" width="100" 
keyFocusChange="{event.preventDefault();}">


Seroy 16.12.2011 11:50

Цитата:

Сообщение от Genzo (Сообщение 1051865)
Я не полный код написал, а лишь пример. Уж названия переменных можете сами изменить.

Код AS3:

myDG.addEventListener(FocusEvent.KEY_FOCUS_CHANGE , ffo);
private function ffo(e:FocusEvent):void
{
e.preventDefault();
}

myDG - id dataGrid'а. Ошибки те же.

Добавлено через 5 минут
Цитата:

Сообщение от Genzo (Сообщение 1051867)
Код AS3:

<mx:DataGridColumn headerText="Название" dataField="imya" width="100" 
keyFocusChange="{event.preventDefault();}">


Спасибо! Заработало внутри текстовых полей:

Код AS3:

<mx:TextInput restrict="№!?A-Za-zА-Яа-я0-9\- " maxChars="100" keyFocusChange="{event.preventDefault();}" />



Часовой пояс GMT +4, время: 00:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.