Обычно вы устанавливаете для свойства SPField.ReadOnlyField значение True, чтобы добиться желаемого поведения для любого поля. (Не забывайте SPField.Update соответственно!) Я полагаю, что есть эквивалентный атрибут CAML для определений списка.
Тем не менее, в вашем классе элементов управления, производном от BaseFieldControl, вы можете просто переопределить метод RenderFieldForInput () и не вызывать базовую реализацию, чтобы ничего не отображалось во время Create или Edit. Однако это все равно будет отображать строку таблицы поля в форме, что, вероятно, не то, что вам нужно. Таким образом, чтобы реализовать желаемое поведение, используйте ReadOnlyField и переопределите Update () в своем классе SPField (не для управления полем), чтобы всегда иметь значение True.