滚动条移动到最右端后控件【部分在窗体外】刚好进去窗体?
Dim oldValue As Integer
Dim l4 As Integer
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
/*运行后,4个LABEL成一行,部分在窗体以外*/
Label2.Left = Label1.Right
Label3.Left = Label2.Right
Label4.Left = Label3.Right
Label2.Top = Label1.Top
Label3.Top = Label2.Top
Label4.Top = Label3.Top
End Sub
Private Sub HScrollBar1_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll
oldValue = HScrollBar1.Value
End Sub
Private Sub HScrollBar1_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles HScrollBar1.ValueChanged
If oldValue < HScrollBar1.Value Then
Label1.Left -= HScrollBar1.Value
Label2.Left -= HScrollBar1.Value
Label3.Left -= HScrollBar1.Value
Label4.Left -= HScrollBar1.Value
Else
Label1.Left += HScrollBar1.Value
Label2.Left += HScrollBar1.Value
Label3.Left += HScrollBar1.Value
Label4.Left += HScrollBar1.Value
End If
End If
End Sub
代码只能凑活,有时移来移去之后,再把滚动条移到最左端,原先最左端的LABEL有部分在窗体外了。。。
觉得代码不完美
还有就是,怎么让滚动条移到最右边后刚好让LABEL4进入窗体。
我设置了滚动条的MINIMUM为88时差不多,为89时又多了.,我不值得怎么用代码来设置这些MIN和MAX。。。
求高手指点指点
[解决办法]
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Width = 300
HScrollBar1.Width = 300
Label2.Left = Label1.Right
Label3.Left = Label2.Right
Label4.Left = Label3.Right
Label2.Top = Label1.Top
Label3.Top = Label2.Top
Label4.Top = Label3.Top
HScrollBar1.Minimum = 0
HScrollBar1.Maximum = 40 + HScrollBar1.LargeChange - 1
End Sub
Private Sub HScrollBar1_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles HScrollBar1.ValueChanged
Label1.Left = -(HScrollBar1.Value * 5)
Label2.Left = Label1.Left + Label1.Width
Label3.Left = Label2.Left + Label2.Width
Label4.Left = Label3.Left + Label3.Width
End Sub
End Class