Vb.net - 设置控制边距值

时间:2011-01-29 14:29:01

标签: vb.net winforms controls margin

所以,我正在以编程方式添加标签,我需要将上边距稍微改为值8.我不能用明显的方式做到这一点,所以我的想法出了什么问题?

Dim LabelAdapter As New Label
LabelAdapter.text = "Adapter"
LabelAdapter.Margin.Top = 8

这给了我错误“表达式是一个值,因此不能成为作业的目标”。

1 个答案:

答案 0 :(得分:18)

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)

很奇怪,是吗?