Ответ 1
Label.Margin
возвращает объект Padding
.
Так как Padding
является структурой, она фактически вернет копию. Вы изменяете значение Top
этой копии, а не фактическое поле контроля. Поскольку это не будет иметь заметного эффекта, VB правильно предотвращает его.
Вам нужно назначить целый новый запас. Фактически, свойство Margin
(или, скорее, класс Padding
), возможно, нарушено, поскольку оно не позволяет легко изменить отдельные значения.
К сожалению, нам просто нужно жить с ним. Чтобы изменить только значение Top
, нам нужно написать:
Dim old As Padding = LabelAdapter.Margin
LabelAdapter.Margin = New Padding(old.Left, 8, old.Right, old.Bottom)
Странно, да?