Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 勾选复选框时将所有按钮对象向下移动100像素?_Vb.net_Visual Studio 2010 - Fatal编程技术网

Vb.net 勾选复选框时将所有按钮对象向下移动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

当文本框被勾选时,我尝试将一组30个按钮向下移动100像素(然后当文本框被取消勾选时,返回到它们的原点)。如果用户需要,这将为按钮下方的一些标签提供空间。。。如此处的“显示提示”框:

我有以下代码:

    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