Для наглядного выделения полей ввода, ввод данных в которых обязателен, можно использовать свойство ОтметкаНезаполненного. Оно управляет отображением красной пунктирной линии в поле ввода. Если значение свойства ОтметкаНезаполненного - Истина, красная пунктирная линия отображается в поле ввода, если Ложь - не отображается.
Свойство ОтметкаНезаполненного доступно только для программного изменения через контекст поля ввода. Значение свойства ОтметкаНезаполненного по умолчанию - Ложь, то есть поля ввода по умолчанию отображаются без красной пунктирной линии.
Свойство АвтоОтметкаНезаполненного управляет автоматическим формированием значения свойства ОтметкаНезаполненного. Если значение свойства АвтоОтметкаНезаполненного - Истина, то значение свойства ОтметкаНезаполненного формируется автоматически, если Ложь - свойство ОтметкаНезаполненного автоматически не формируется.
В случае если свойство АвтоОтметкаНезаполненного установлено в Истина, автоматическое формирование значения свойства ОтметкаНезаполненного происходит по следующему правилу: если значение в поле ввода эквивалентно значению по умолчанию для текущего типа (например, ноль для числа, пустая ссылка для ссылочных типов данных и т.п.), то значение свойства ОтметкаНезаполненного будет выставлено в Истина, иначе - в Ложь. После изменения значения свойства ОтметкаНезаполненного будет выполнена перерисовка поля ввода, и красная пунктирная линия появится или пропадет.
Значение свойства АвтоОтметкаНезаполненного по умолчанию - Ложь, то есть в полях ввода по умолчанию нет автоматического формирования значения свойства ОтметкаНезаполненного. Свойство АвтоОтметкаНезаполненного доступно как через контекст поля ввода, так и через палитру свойств.
Пример. Пусть существует поле ввода, в котором вводится число. Свойство АвтоОтметкаНезаполненного установлено в Истина. Если в поле ввода отображается число, совпадающее со значением по умолчанию для установленного типа (т.е. ноль, поскольку мы редактируем число), то поле ввода будет выглядеть так:
Если же в поле ввода отображается число, не совпадающее со значением по умолчанию для установленного типа, например 1, то поле ввода будет выглядеть так:
1. Начало установки
2. Сохраняется старое значение свойства АвтоОтметкаНезаполненного, устанавливается его новое значение.
3. Новое значение свойства АвтоОтметкаНезаполненного установлено в Истина, а старое значение этого свойства - Ложь?
4. Сохраняется старое значение свойства ОтметкаНезаполненного. Определяется новое значение свойства ОтметкаНезаполненного в соответствии с тем, является ли значение, хранящееся в поле ввода, значением по умолчанию установленного в нем типа.
5. Старое значение свойства ОтметкаНезаполненного было равно Ложь, а новое значение свойства - Истина?
6. Перерисовка поля ввода.
7. Конец установки.
Отметим, что выключение свойства АвтоОтметкаНезаполненного, т.е. перевод его значения из Истина в Ложь, не приводит к изменению текущего значения свойства ОтметкаНезаполненного. Таким образом, если на момент выключения свойства АвтоОтметкаНезаполненного значение свойства ОтметкаНезаполненного было равно Истина, то после выключения значение свойства ОтметкаНезаполненного останется прежним, и в поле ввода будет отображаться особая отметка. Для ее снятия нужно программно перевести значение свойства ОтметкаНезаполненного в Ложь.