Public Class Form1
Private Sub Move_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
PictureBox1.Location.X = (197 + TrackBar1.Value)
End Sub
End
那是我的视觉基本代码。
答案 0 :(得分:1)
您未设置.Location.X
或.Location.Y
。如果只设置一个,则设置.Left
或.Top
。如果要同时设置两者,则将.Location
设置为Point
。
PictureBox1.Left = (197 + TrackBar1.Value)
出现错误的原因是因为Location
是Point
类型,而这是一个值类型。当您获得值类型属性时,您将获得值的副本,而不是对值的引用。这意味着您对副本进行任何更改,而不是原始更改。这样,如果您的代码被允许,则将设置存储在X
Point
属性中的PictureBox's
副本的Location
属性。那将不会对PictureBox
产生任何影响,并且完全没有用。如果要更改这样的值类型属性,则需要将属性值转换为变量,更改变量,然后将副本分配回该属性:
Dim pt = PictureBox1.Location
pt.X = 197 + TrackBar1.Value
PictureBox1.Location = pt
设置Top
和Left
属性可以避免此两步操作,因为它是在内部完成的。