如何在 form1.control 之上添加 form2 控件
How to add a form2 control on top of a form1.control
我有两种形式。带有 richtextbox 的 Form1 和带有列表框的 form2。
我想将列表框放在 richtextbox 之上,将其停靠。
我想完全像这样:
form2.Controls.Remove(ListBox1)
form2.hide
form1.richtextbox1.controls.add(form2.listbox1)
form1.richtextbox1.hide 'I can't hide, also listbox will hide...
form2.listbox1.location= richtextbox1
或
form2.listbox1.bounds=richtextbox1.bounds
在设置 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
输出:
我有两种形式。带有 richtextbox 的 Form1 和带有列表框的 form2。
我想将列表框放在 richtextbox 之上,将其停靠。 我想完全像这样:
form2.Controls.Remove(ListBox1)
form2.hide
form1.richtextbox1.controls.add(form2.listbox1)
form1.richtextbox1.hide 'I can't hide, also listbox will hide...
form2.listbox1.location= richtextbox1
或form2.listbox1.bounds=richtextbox1.bounds
在设置 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
输出: