Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > StringGrid, редактирование ячейки


Автор: Нитонисе 25.5.2013, 19:38
Хочу разрешить пользователю вход в режим редактирование только двумя способами - двойной клик по ячейке, либо нажатие клавиши Enter. С этим все впорядке. Но режим редактирования также включается при нажатии любой клавиши. Ячейка мгновенно переходит в редактирование и туда помещается текст соответствующей клавиши. Как бы мне это запретить? И еще хочу чтобы режим редактирования заканчивался тоже только двумя способами - клик мышкой по другой ячейке (или вообще вне грида) или нажатие клавиши Enter. Но режим редактирования завершается также и при нажатии на клавиши со стрелками. Как мне это запретить?

Автор: xvr 27.5.2013, 15:27
Цитата(Нитонисе @  25.5.2013,  19:38 Найти цитируемый пост)
Как бы мне это запретить?

У StringGrid есть бит в проперти (кажется Options). Сам бит называется что то типа goAutoEdit


Автор: Нитонисе 28.5.2013, 17:32
Цитата(xvr @  27.5.2013,  15:27 Найти цитируемый пост)
У StringGrid есть бит в проперти (кажется Options). Сам бит называется что то типа goAutoEdit

Там есть свойство goEditing. Оно отвечает за возможность редактирования ячеек грида. У меня установлено в false. Но редактировать я все равно могу. Я еще не упомянул, что использую расширенный StringGrid из набора компонентов TMS. Попробовал оригинальный StringGrid, там свойство goEditing работает как надо. Когда оно false - редактировать ячейки нельзя. Когда true - поведение точно такое, как я описывал применительно к своей проблеме, то есть нажатие любой клавиши сразу переводит ячейку в режим редактирование и помещает в нее текст нажатой клавиши.

Автор: petlyura 28.5.2013, 18:33
возможно надо переопределять тогда обработчики и в них отлавливать нажатие клавиш  

Автор: xvr 28.5.2013, 20:07
Цитата(Нитонисе @  28.5.2013,  17:32 Найти цитируемый пост)
 Я еще не упомянул, что использую расширенный StringGrid из набора компонентов TMS.

Тогда увы - с TMS не работал

Автор: Dem_max 29.5.2013, 03:55
Видимо в TMS профукали этот момент

Автор: Нитонисе 31.5.2013, 14:48
А как можно программно запретить редактирование ячеек, не используя свойство goEditing?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)