Vb.net 勾选复选框时将所有按钮对象向下移动100像素?
当文本框被勾选时,我尝试将一组30个按钮向下移动100像素(然后当文本框被取消勾选时,返回到它们的原点)。如果用户需要,这将为按钮下方的一些标签提供空间。。。如此处的“显示提示”框: 我有以下代码:Vb.net 勾选复选框时将所有按钮对象向下移动100像素?,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,当文本框被勾选时,我尝试将一组30个按钮向下移动100像素(然后当文本框被取消勾选时,返回到它们的原点)。如果用户需要,这将为按钮下方的一些标签提供空间。。。如此处的“显示提示”框: 我有以下代码: Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If CheckBox
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
Button5.Location = New Point(100, 100)
Label1.Visible = False
Else
Button5.Location = New Point(300, 300)
Label1.Visible = True
End If
End Sub
问题在于新的Point()函数。我想要的新点是相对于原点的-100px,然后对于Else语句,它是Button5.Location=origin
我可以使用什么命令来实现这一点?使用Left和Top,如中所示:
另一个想法…将所有按钮放在
面板
中,然后更改其.Top
属性以移动其中的所有内容
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked Then
Panel1.Top += 100
Else
Panel1.Top -= 100
End If
End Sub
您可以迭代容器所拥有的控件,正如mfandry提供的那样,您可以使用Top属性
也许使用一个新的工具会更容易些?
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked Then
Panel1.Top += 100
Else
Panel1.Top -= 100
End If
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
Dim ctrl As Control
For Each ctrl In container.Controls
If CheckBox1.Checked = True Then
ctrl.Top += 100
ElseIf
ctrl.Top -= 100
End If
Next
EndSub