如何在 form1.control 之上添加 form2 控件

How to add a form2 control on top of a form1.control

我有两种形式。带有 richtextbox 的 Form1 和带有列表框的 form2。

我想将列表框放在 richtextbox 之上,将其停靠。 我想完全像这样:

在设置 form2 之前一切正常。listbox1.location 因为如果 richtextbox1 被隐藏,列表框也会被隐藏。此外,将列表框的位置 and/or 边界设置为与 richtextbox 相同并没有完全覆盖 richtextbox。我也试过对两者使用相同的尺寸。

Gif Example

Form2.Listbox1.Parent = Form1
Form1.RichTextBox1.Visible = false
Form2.Listbox1.dock = DockStyle.Fill

这里很酷的一点是,在 Form2 中为 Listbox1 编写的任何代码在位于 Form1 中时仍然可以运行。

P.S。重命名您的控件。

这对我有用:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim LB As ListBox = Form2.ListBox1
    If IsNothing(LB.Tab)
        LB.Tag = LB.Size ' <-- store it for later use
    End If
    Me.Controls.Add(LB)
    LB.Bounds = RichTextBox1.Bounds
    RichTextBox1.Hide()
End Sub

稍后,当您将 ListBox 移回原处时,检索标签中存储的大小:

If Not IsNothing(LB.Tab)
    LB.Size = LB.Tag
End If

输出: