子窗体加到主窗体的TabControl中,关闭窗体时删除TabPage,关闭所有子窗体后,主窗体Close失效

dyf2001 2011-04-07 10:24:00
如题:

窗体添加到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就没有反应了
...全文
330 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dyf2001 2011-04-07
  • 打赏
  • 举报
回复
跟踪了一下Closing事件,e.Cancel默认成了true,大家知道为什么吗
dyf2001 2011-04-07
  • 打赏
  • 举报
回复
又做了一个简单的程序进行测试,发现没有问题。那现在的问题是因为什么导致Close方法失效,没有出来窗体的Closing事件,肯定不是这个问题。

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧