我正在通过编程方式添加标签,需要将顶部边距微调为8。我无法通过常规方式实现,那么我的想法有什么问题?
Dim LabelAdapter As New Label
LabelAdapter.text = "Adapter"
LabelAdapter.Margin.Top = 8
这给我报错了:“表达式是一个值,因此不能成为赋值的目标”。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)
很奇怪,对吧?