【问题标题】:How to move multiple panels as one in vb?如何在vb中将多个面板作为一个面板移动?
【发布时间】:2022-12-19 21:55:59
【问题描述】:

由于我是编程新手,所以我正在使用 Visual Basic 制作应用程序。我试图让它像 wordle。用户输入一个单词后,会制作一个面板框,并在面板框内放置多个标签。现在为了将来的猜测,我需要将那个面板框向下移动并将新的面板框放在原来的位置。总而言之,最新的面板显示在顶部,最旧的面板显示在底部。

因为每次我只是试图在制作新面板之前简单地移动它时都会制作一个新面板,所以没有用。如果需要任何代码来帮助我,我很乐意提供。

【问题讨论】:

  • 你能展示你有什么代码吗?

标签: vb.net


【解决方案1】:

您应该使用 FlowLayoutPanel 作为其他 Panel 控件的容器。您可以简单地向它添加一个子控件,它会处理布局,因此您不必担心设置或更改每个子控件的Location。如果您使用myFlowLayoutPanel.Controls.Insert 并将索引指定为 0,则新的子控件将被放置在开始处,所有其他子控件将被自动向下推。

【讨论】:

    【解决方案2】:

    使用 Location 属性移动控件

       'create new Panel object
        Dim newPanel As Panel = New Panel
        newPanel.Size = New System.Drawing.Size(width:=300, height:=300)
        'place Location
        newPanel.Location = New Point(x:=10, y:=10)
        'add Panel object to Form
        Me.Controls.Add(newPanel)
    
        'create new Label
        Dim newLabel As Label = New Label
        'add Label to Form
    
        newLabel.Text = "I Am new"
        newLabel.Location = New Point(20, 20)
        'Add Label to panel
        newPanel.Controls.Add(newLabel)
        'move panel
        newPanel.Location = New Point(x:=10, y:=100)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多