在一个winform切换不同的panel导致的System.Runtime.InteropServices.SEHException,高分求解!

VinsentVC 2004-12-14 05:21:20
为了实现在一个Winform中根据导航按钮在不同的panel中进行切换,我采用下面的结构的代码:
首先,令所有要进行切换的Panel全部不加到this.Controls中,
然后,通过下面代码进行切换
void SwitchToPanel(Panel panel)
{
this.Controls.Remove(lastPanel); // lastPanel记录了当前可见的panel;
this.Controls.Add(panel);
lastPanel = panel;
}
切换的时候一切正常,但是,当遇到下面的情况,就会出现异常:
如果Form首次显示的Panel 是panel1,通过SwitchToPanel切换到panel2,panel2中调用了
一个对话框类的ShowDialog,则dialog关闭之后,会出现:
SEHException: 外部组件发生异常 at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg).
如果一开始显示的是panel2就不会出现这种情况。
请高手给出解决办法或者变通的解决方案,谢谢:)
...全文
62 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmzou 2004-12-14
  • 打赏
  • 举报
回复
用这个试试!
void SwitchToPanel(Panel panel)
{
lastPanel.Controls.Clear();
this.Controls.Remove(lastPanel); // lastPanel记录了当前可见的panel;
this.Controls.Add(panel);
lastPanel = panel;
}

110,545

社区成员

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

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

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