Ваш браузер устарел, не поддерживает современные веб-стандарты и представляет угрозу Вашей безопасности. Для комфортной работы с порталом, пожалуйста, установите современыый браузер.
Портал технической поддержки

DV 5.4 Как при открытии формы сделать элемент разметки недоступным для редактирования?

С ответом

Комментарии

Комментариев: 14

  • Официальный комментарий

    Сам элемент разметки можно сделать видимым / невидимым, а редактирование - это уже для элемента управления в нем.

    Элемент получаем через customizable.FindPropertyItem с нужным типом, а дальше уже зависит от типа контрола (TextEdit, MemoEdit, CommunicativeChooseBox и т.п.).

    Н-р, название в документе:
    ICustomizableControl customizable = CardControl;
    TextEdit nameEdit = customizable.FindPropertyItem<TextEdit>("Theme");
    nameEdit.ReadOnly = true;

    Действия с комментариями Постоянная ссылка
  • Евгений, Добрый день!

    При компиляции ругается: Не удалось найти имя типа или пространства имен TextEdit.

    Добавил сборки:

    using DocsVision.BackOffice.WinForms.Controls;

    using DocsVision.BackOffice.WinForms.Design;

    Какая правильная сборка должна быть указана?

     

    0
    Действия с комментариями Постоянная ссылка
  • Вот что вообще в шапке редактора скриптов документа указано

    using System;

    using System.Windows.Forms;

    using DocsVision.Platform.ObjectManager;

    using DocsVision.Platform.ObjectManager.Metadata;

    using DocsVision.Platform.ObjectModel;

    using DocsVision.BackOffice.ObjectModel.Services;

    using DocsVision.BackOffice.WinForms;

    using DocsVision.BackOffice.WinForms.Controls;

    using DocsVision.BackOffice.WinForms.Design;

    using DocsVision.BackOffice.ObjectModel;

    using DocsVision.Workflow.Objects;

    using DocsVision.BackOffice.WinForms.Design.LayoutItems;

    0
    Действия с комментариями Постоянная ссылка
  • Это DevExpress.XtraEditors

    0
    Действия с комментариями Постоянная ссылка
  • Евгений, теперь пишет ,что DevExpress.XtraEditors.TextEdit не содержит определения для ReadOnly.

    0
    Действия с комментариями Постоянная ссылка
  • Может быть .Properties.ReadOnly, это уже надо в документации DevExpress для конкретного элемента управления смотреть.

     

    0
    Действия с комментариями Постоянная ссылка
  • А где эту документацию можно скачать или онлайн глянуть?

    0
    Действия с комментариями Постоянная ссылка
  • https://documentation.devexpress.com/WindowsForms/7874/WinForms-Controls

    Кроме этого с их же сайта можно скачать триальную версию DevExpress с примерами использования различных элементов управления.

    0
    Действия с комментариями Постоянная ссылка
  • Понял. Спасибо большое.

    0
    Действия с комментариями Постоянная ссылка
  • Евгений, с полем темы документа получилось, а такой же код на нумератор не отрабатывает почему-то

    ICustomizableControl customizable = CardControl;

    NumeratorBox NumEdit = customizable.FindPropertyItem<NumeratorBox>("RegNumber");

    NumEdit.Properties.ReadOnly = true;

     

    С нумератором есть какие-то особенности?

    0
    Действия с комментариями Постоянная ссылка
  • Должен отрабатывать, разве что, слишком рано метод вызывается и у контрола какой-то собственный код дальше работает.

    Можно попробовать не сразу блокировать, а, н-р, по таймеру.

     

    0
    Действия с комментариями Постоянная ссылка
  • В общем суть такая.

    Если значение в поле нумератора уже есть, тогда нужно сделать только для чтения, чтоб кнопка не нажималась которая выделяет номер.

    0
    Действия с комментариями Постоянная ссылка
  • Контрол унаследован от ButtonEdit, можно в нем кнопки перебрать и спрятать / удалить, н-р.

    Или просто через Enabled закрыть.

    0
    Действия с комментариями Постоянная ссылка
  • ДА, так и сделал - сработало. Спасибо.

    0
    Действия с комментариями Постоянная ссылка

Войдите в службу, чтобы оставить комментарий.