Выбрать поле ввода и установить курсор в крайнее правое положение
Добрый день! Помогите пожалуйста с решением такой задачки, необходимо выбрать поле ввода и поставить курсор в крайнее правое положение.
Выбрать поле ввода можно так:
Но так выделяется все поле ввода. А как поставить курсор справа?
1С:Предприятие 8.3 (8.3.11.3034)
Выбрать поле ввода можно так:
ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.КоличествоКопий;
Но так выделяется все поле ввода. А как поставить курсор справа?
1С:Предприятие 8.3 (8.3.11.3034)
По теме из базы знаний
- Универсальный конструктор отчетов (Новейший отчет) для 1C 7.7
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- MS Office Excel для пользователей. Подводные камни и полезные возможности
- Самые используемые методы БСП 3.1.9
Найденные решения
(4) у нас не арабская вязь. У нас принято читать/писать слева направо. Крайнее правое положение это не 0,0.
ТекущийЭлемент = Элементы.КоличествоКопий;
ПозицияОкончания = СтрДлина(ТекущийЭлемент.ТекстРедактирования) +1;
ТекущийЭлемент.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания);
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)УстановитьГраницыВыделения (SetTextSelectionBounds)
Вариант синтаксиса: По позициям начала и конца выделения в тексте
Синтаксис:
УстановитьГраницыВыделения(<НачальнаяПозиция>, <КонечнаяПозиция>)
Параметры:
<НачальнаяПозиция> (обязательный)
Тип: Число.
Позиция начала выделения в тексте.
<КонечнаяПозиция> (обязательный)
Тип: Число.
Конечная позиция выделения в тексте.
Вариант синтаксиса: По позициям начала и конца выделения в тексте
Синтаксис:
УстановитьГраницыВыделения(<НачальнаяПозиция>, <КонечнаяПозиция>)
Параметры:
<НачальнаяПозиция> (обязательный)
Тип: Число.
Позиция начала выделения в тексте.
<КонечнаяПозиция> (обязательный)
Тип: Число.
Конечная позиция выделения в тексте.
Процедура Команда1(Команда)
ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.КоличествоКопий;
ПозицияНачала = 0;
ПозицияОкончания = 0;
ЭтаФорма.ТекущийЭлемент.УстановитьГраницыВыделения(ПозицияОкончания);
КонецПроцедуры
Недостаточно фактических параметров. А как будет правильно?
(4) у нас не арабская вязь. У нас принято читать/писать слева направо. Крайнее правое положение это не 0,0.
ТекущийЭлемент = Элементы.КоличествоКопий;
ПозицияОкончания = СтрДлина(ТекущийЭлемент.ТекстРедактирования) +1;
ТекущийЭлемент.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания);
(5)
Так курсор становится не в крайнее правое положение а на первый знак справа.
ТекущийЭлемент = Элементы.КоличествоКопий;
ПозицияОкончания = СтрДлина(ТекущийЭлемент.ТекстРедактирования) +1;
ТекущийЭлемент.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания);
ПозицияОкончания = СтрДлина(ТекущийЭлемент.ТекстРедактирования) +1;
ТекущийЭлемент.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания);
Так курсор становится не в крайнее правое положение а на первый знак справа.
Для многострочного поля ввода на УФ такой прием не сработал. В этом случае корректно отработало только через подключение обработчика ожидания:
&НаКлиенте
Процедура УстановитьТекущийЭлемент(Команда)
ТекущийЭлемент = Элементы.Комментарий;
ПодключитьОбработчикОжидания("УстановитьГраницыВыделенияКомментария", 0.1, Истина);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьГраницыВыделенияКомментария()
ПозицияОкончания = СтрДлина(Элементы.Комментарий.ТекстРедактирования)+1;
Элементы.Комментарий.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот