11
所以,我正在以编程方式添加一个标签,而且我需要将顶部边距修改为值8.我不能那么明显地做到这一点,所以我的想法有什么问题?Vb.net - 设置控件边距值
Dim LabelAdapter As New Label
LabelAdapter.text = "Adapter"
LabelAdapter.Margin.Top = 8
这给了我错误“表达式是一个值,因此不能作为一个任务的目标”。
所以,我正在以编程方式添加一个标签,而且我需要将顶部边距修改为值8.我不能那么明显地做到这一点,所以我的想法有什么问题?Vb.net - 设置控件边距值
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)
怪异的,是吧?
如果Intellisense不提示你Padding类,忽略它,更常见的是它不会工作;顺便说一句,为什么会发生? – 2016-03-15 19:22:12