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