我有一个问题真正开始在我的脑海里...... 我的应用程序有一个ListView控件,其中填充了项目。双击某个项目时,它会创建一个新的表单实例。然后,它会创建一个新面板并将该表单添加到面板中。然而,对于我的生活,我无法弄清楚如何关闭面板内的表格。
在我的DoubleClick活动中:
Dim frm As New frmStorePage(_store.Code, _store.Name)
'Create a new panel with the store page
Dim pnl As New Panel
pnl.Name = _store.Code
pnl.BackColor = SystemColors.Control
pnl.Size = New Size(1522, 892)
pnl.Location = New Point(3, 3)
frm.TopLevel = False
frm.Name = _store.Code
pnl.Controls.Add(frm)
frm.Show()
pnlStores.Controls.Add(pnl)
pnl.BringToFront()
...
在我的关闭事件中:
Dim panel As Panel = CType(pnlStores.Controls.Find(lsvOpenStoreList.SelectedItems(0).Name, False)(0), Windows.Forms.Panel)
For Each control As Control In panel.Controls
If TypeOf control Is Windows.Forms.Form And control.Name = panel.Name Then
control.Dispose()
End If
Next
pnlStores.Controls.Remove(panel)
panel.Dispose()
pnlStoreList.BringToFront()
...
我也尝试将我的表单声明为全局变量,但似乎仍无法关闭它。 表单有许多计时器事件,当表单关闭时会停止,但是,即使面板关闭,计时器事件仍在运行。似乎表单在后台仍处于活动状态。
任何帮助都将不胜感激。
答案 0 :(得分:0)
由于愚蠢的疏忽,我没有看到我用来处理所有控件并关闭表单的代码不在FormClosing事件中,而是在名为Close的命令按钮下。因此,我的结账程序从未被调用,因此计时器仍然活跃。
由于