C# 如何在关闭从其他项目带入选项卡控件的窗体时关闭选项卡

C# 如何在关闭从其他项目带入选项卡控件的窗体时关闭选项卡,c#,vb.net,winforms,C#,Vb.net,Winforms,我有两个不同的项目:主屏幕(如选择屏幕)和模块。模块项目在我的主屏幕项目中作为参考。我的主屏幕上有一个选项卡控件,从不同项目打开的表单显示在此选项卡控件中 我想做什么; 当在选项卡控件中打开的表单被选中并在选择屏幕上关闭时,我希望选项卡控件下的选项卡被关闭。但是我想在关闭窗体的关闭事件中这样做 表单调用操作使用以下功能: Private子OpenForm(ByVal e As System.Windows.Forms.TreeViewEventArgs) Dim NameofTab作为新选项

我有两个不同的项目:主屏幕(如选择屏幕)和模块。模块项目在我的主屏幕项目中作为参考。我的主屏幕上有一个选项卡控件,从不同项目打开的表单显示在此选项卡控件中

我想做什么; 当在选项卡控件中打开的表单被选中并在选择屏幕上关闭时,我希望选项卡控件下的选项卡被关闭。但是我想在关闭窗体的关闭事件中这样做

表单调用操作使用以下功能:

Private子OpenForm(ByVal e As System.Windows.Forms.TreeViewEventArgs)

Dim NameofTab作为新选项卡页()
Dim FORM以整数形式打开
如果FormName为“”,则我通过Sql查询获取表单的名称
Dim formAssembly=系统.Reflection.Assembly.Load(WhichClass)
Dim typeOfForm=formAssembly.GetType(WhichClass+“+”FormName)
Dim form As form=CType(Activator.CreateInstance(typeOfForm),form)
FormOpen=0
对于x作为整数=0到Application.OpenForms.Count-1
如果Application.OpenForms(x).Name=FormName,则
FormOpen=1
退出
如果结束
下一个
如果FormOpened=1,则“如果表单已打开,它将进行选择过程。”。
Dim sayy作为整数
Dim i作为新的TabControl.TabPageCollection(Me.MainTab)
对于sayy=0到i,计数为-1
如果MainTab.TabPages(sayy).Text=form.Text,则
MainTab.SelectedTab=MainTab.TabPages(sayy)
退出
如果结束
下一个
Else'如果表单关闭,它将在Main选项卡中打开一个新选项卡。
MainTab.Visible=True
NameofTab.Text=e.Node.Text
MainTab.TabPages.Add(名称选项卡)
NameofTab.Name=e.Node.Text
form.TopLevel=False
form.Visible=True
MainTab.TabPages(e.Node.Text).Controls.Add(表单)
form.Dock=DockStyle.Fill
MainTab.SelectedTab=选项卡名称
如果结束
如果结束
如果结束
端接头`

我不知道应该编写哪些代码来在我调用的表单的关闭事件中关闭选项卡页面。在不同项目中的表单关闭事件中,我必须到达主屏幕上的MainTab工具,这是一个不同的项目。

请在您的问题中添加相关的源代码片段。这将有助于确定导致问题的原因之前,项目是统一的,我们可以使用以下标准语法访问主入口中的选项卡控制工具:
MainScreen.MainTab.TabPages.Remove(MainScreen.MainTab.SelectedTab)
但是现在项目是分开的,我不知道如何在另一个项目中获取有关选项卡控件工具的信息。@Athrsizi在问题本身中添加信息,包括代码。我们无法猜测您的代码是做什么的——它是如何添加选项卡的,为什么不删除它们,或者为什么关闭另一个表单应该与原始表单中的选项卡有任何关系。我们甚至不知道使用了什么标签控件有人知道吗?
    Dim NameofTab As New TabPage ()
    Dim FormOpened As Integer
        If FormName <> "" Then 'I get the name of the form with a Sql query

            Dim formAssembly = System.Reflection.Assembly.Load (WhichClass)
            Dim typeOfForm = formAssembly.GetType (WhichClass + "." + FormName)
            Dim form As Form = CType (Activator.CreateInstance (typeOfForm), Form)

            FormOpened = 0

            For x As Integer = 0 To Application.OpenForms.Count - 1
                If Application.OpenForms (x) .Name = FormName Then
                    FormOpened = 1
                    Exit For
                End If
            Next

            If FormOpened = 1 Then 'If the form is opened, it will make the selection process.
                Dim sayy As Integer
                Dim i As New TabControl.TabPageCollection (Me.MainTab)
                For sayy = 0 To i.Count - 1
                    If MainTab.TabPages (sayy) .Text = form.Text Then
                        MainTab.SelectedTab = MainTab.TabPages (sayy)
                        Exit For
                    End If
                Next

            Else 'If the form is closed, it will open with a new tab in the MainTab.

                MainTab.Visible = True
                NameofTab.Text = e.Node.Text
                MainTab.TabPages.Add (NameofTab)
                NameofTab.Name = e.Node.Text

                form.TopLevel = False
                form.Visible = True

                MainTab.TabPages (e.Node.Text) .Controls.Add (form)
                form.Dock = DockStyle.Fill
                MainTab.SelectedTab = NameofTab

            End If
        End If
    End If
End Sub`