将窗体的所有者设置为控件,而不是窗体

时间:2019-11-12 08:47:50

标签: vb.net

我有一个面向TabControl的UI。

这意味着,在我的主要表单上是一个TabControl。 TabPage是动态添加的代码。

在TabPage中,我在用户控件中显示与客户相关的信息。 在这些用户控件之一中,我有一个添加新订单的按钮。 新订单以表格显示。

我不想显示表单模式,因此与主表单的交互仍然存在。 我的问题是,我不知道如何将新订单的所有者设置为控件。

因为,“所有者”属性仅接受表单类型。 但是,当我将所有者设置为表单时,订单表单在所有标签页上都可见,这是我不想要的。

Dim locNewOrderForm As New frmOrderForm
locNewOrderForm.Show
locNewOrderForm.BringToFront()
' This isn't correct… 
' Here I am searching for a solution
locNewOrderForm.Owner = Me.FindForm

1 个答案:

答案 0 :(得分:0)

您必须制作单独的表格以允许它们用作控件。我们的“子级”表单声明和初始化代码的一部分(对于选项卡式界面,您知道...)(可能无法按此处显示的方法进行操作,但您可以理解)

Friend Class ControlLikeForm
    Inherits Form

:::::::::

Public Sub New()
    MyBase.New()
    SetStyle(ControlStyles.ResizeRedraw Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or ControlStyles.OptimizedDoubleBuffer, True)
    Me.TopLevel = False
    Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
End Sub
相关问题