Form窗体切换超出10次报错
问题
切换Form时,通过 show(Form);打开新窗体;再通过 this.Form.Close();关闭窗体,但是切换超出10次后,就会异常报错。报错提示:FormStackMaxCount exceed:10
解决
利用Show的回调关闭窗体this.Show(b,(obj,args)=>{this.Close();//回调事件在b关闭后触发});
例如:
窗体a中写代码跳转b,this.Form.Show(b,(obj,args)=>{this.Close();//回调事件2在b关闭后触发,this指a窗体});
窗体b中写代码跳转c,this.Form.Show(c,(obj,args)=>{this.Close();//回调事件在c关闭后触发,this指b窗体});
c页面中执行this.Close();//可以在窗体c中加入button,在button的点击事件中写this.Close()
这样点击c中的button 关闭窗体c 时会执行回调中的方法关闭b,关闭a的
示意图
补充
*窗体a跳转窗体b,关闭窗体b刷新窗体a也可以通过Show的回调事件实现,例如: *
a窗体中代码写
this.Form.Show(b,(obj,args)=>{
textbox1.Text=b.x;//将窗体b的参数x赋值给窗体a中textbox1的text
});
如果只是两个窗体来回跳转,可以这么写:
窗体a 代码 this.Form.Show(b);
窗体 b 代码 this.Close() ;
搜索关键词
FormStackMaxCount exceed