[英]VB.NET - Form in TabControl not opened after closing It
I have ToolStripMenu from where I open forms. 我在打开表单的地方有ToolStripMenu。 Forms are opened in TabControl, which is placed in one of the Split Container's panel.
窗体在TabControl中打开,该控件位于“拆分容器”面板之一中。 I have placed a button in Split container too, It closes any selected TabPages(where forms open).
我也已在Split容器中放置了一个按钮,它将关闭所有选定的TabPages(打开表单的位置)。 Problem is that when I open form in new TabPage and close It by this button, form doesn't open anymore.
问题是,当我在新的TabPage中打开表单并通过此按钮关闭它时,表单不再打开。 WHY ?
为什么呢? ....Here is my code:
....这是我的代码:
Private Sub SearchItemsAPOToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SearchItemsToolStripMenuItem.Click
'Define new page in Tab control and form to open in It
Dim PageNew As New TabPage()
Dim FrmItem As New Search_Items
'Define where and how form should open
FrmItem.TopLevel = False
FrmItem.Dock = DockStyle.Fill
FrmItem.FormBorderStyle = FormBorderStyle.None
'If form allready opened in TabPage, only send focus to It
If Application.OpenForms().OfType(Of Search_Items).Any Then
For Each page As TabPage In TabControl1.TabPages
If page.Text = "Search Items" Then
TabControl1.SelectedTab = page
End If
Next page
'If form not allready opened, we open It in Tab control and send focus on that TabPage
Else
PageNew.Controls.Add(FrmItem)
PageNew.Text = "Search Items"
TabControl1.Visible = True
TabControl1.TabPages.Add(PageNew)
FrmItem.Show()
BtnTab.Visible = True
TabControl1.SelectedTab = PageNew
End If
End Sub
Private Sub BtnTab_Click(sender As Object, e As EventArgs) Handles BtnTab.Click
'Button is visible when TabPages are opened, and with click It closes selected TabPage
Me.TabControl1.TabPages.Remove(Me.TabControl1.SelectedTab)
'IF no TabPages, button hides again
If TabControl1.TabPages.Count = 0 Then
TabControl1.Visible = False
BtnTab.Visible = False
End If
End Sub
The object already exists and is only hidden and you are creating it again, dispose of the object before recreating it. 该对象已经存在并且仅被隐藏,并且您要重新创建它,请在重新创建该对象之前将其处置。
Dim tbp As TabPage = TabControl1.SelectedTab
TabControl1.TabPages.Remove(tbp)
tbp.Dispose()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.