因此,我要以编程方式添加标签,并且需要将顶部边距稍微更改为值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)

奇怪吧?

关于Vb.net-设置控件的边距值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4837400/

10-11 01:06