Как в ComboBoxEdit запретить редактирования текста

Как в ComboBoxEdit запретить редактирования текста, и оставить возможность выбирать значение только из выпадающего списка.
Пытался сделать так:

Page.cbCommunication.Editable = false;

Но реакция нулевая.

Нравится

9 комментариев

Добрый день.

Реакция есть, пользователь, фактически может выбрать только предлагаемые в выпадающем списке варианты. При .Editable = false отключается подсказка и возможность сохранить введенные с клавиатуры значения.

[quote="Maxim Gritsenko"]

Добрый день.

Но вручную удалить текст все равно возможно. Необходимо полностью заблокировать эту возможность.

Илья, Combobox предоставляет выбор вариантов из справочника, неполное значение пользователь сохранить не сможет, выбрать что либо отличное от представленного в выпадающем списке - тоже.
Сделайте поле обязательным для заполнения и пользователь не сможет оставить его пустым.

Возможно, я не в полной мере Вас понимаю. Какая бизнес-задача стоит?

Есть ComboBox заполняемый програмно.

Page.cbCommunication.AddItem(new System.Guid("EF3E31D0-F36B-1410-E680-005056800029"), "Телефон");
Page.cbCommunication.AddItem(new System.Guid("EF3E31D0-F36B-1410-E680-005056800028"), "WWW");
 
Page.cbCommunication.SelectItem(new System.Guid("EF3E31D0-F36B-1410-E680-005056800029"));
Page.cbCommunication.Editable = false;

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

Илья, сделайте поле обязательным для заполнения в свойствах колонки, в настройках объекта:

В таком случае, пользователь не сможет сохранить изменения не заполнив поле.

Максим у меня немного другая ситуация:

Сделан дополнительный фильтр, и в нем выбор средств связи. Поэтому признак обязательности поля мне не подходит. Блокировка должна быть на уровне интерфейса. На скриншоте показана ситуация когда пользователь очистил поле вручную.

Илья, я, наверное, предлагаю "костыль", но все же.
Что если в глобальную переменную записывать выбор фильтра ("Телефон" или "WWW").
А на изменение поставить проверку, является ли введенное значение (в том числе и пустое) одним из этих двух вариантов:
1) Если нет, возвращаем значение из глобальной переменной.
2) Если да, то записываем текущее значение в переменную.

Пользователь сможет очищать и менять поле, но как только уберет от туда мышь (или Enter нажмет) ,то все вернется на круги своя.

Александр, я уже думал об этом костыле. Но както это не аккуратно получается. Я предполагаю что возможно изменить стиль у элемента (это же HTML). Но как и где это сделать пока не нашел.

Добрый день,

К сожалению скрипт-таски конфигурации не предполагают редактирование стилей элементов страницы. Поэтому рекомендуем воспользоваться решением предложенным Сазановым Александром.

Показать все комментарии