子窗体加到主窗体的TabControl中,关闭窗体时删除TabPage,关闭所有子窗体后,主窗体Close失效
如题:
窗体添加到TabControl中
private void MenuItem_Click(object sender, EventArgs e)
{
TabPage page = rwTabControl1.TabPages["Form1"];
if (page == null)
{
rwTabControl1.TabPages.Add("Form1", "窗体1");
rwTabControl1.SelectedIndex = rwTabControl1.TabCount - 1;
rwTabControl1.TabPages[rwTabControl1.SelectedIndex].ControlRemoved += TabPageControlRemoved;
Form1 frm = new Form1();
frm.TopLevel = false;
frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
rwTabControl1.TabPages[rwTabControl1.SelectedIndex].Controls.Add(frm);
frm.Dock = DockStyle.Fill;
frm.Show();
}
else
{
rwTabControl1.SelectedTab = page;
}
}
TabPage的ControlRemoved中如果TabPage中没有控件(窗体关闭以后),删除TabPage
private void TabPageControlRemoved(object sender, ControlEventArgs e)
{
TabPage page = (TabPage)sender;
if (page.Controls.Count == 0)
{
rwTabControl1.TabPages.Remove(page);
}
}
添加一个窗体然后关闭没有问题,添加两个窗体不关闭没有问题。添加两个窗体然后都关闭,再调用主窗体close就没有反应了