Smobiler上海石磨_.NET移动开发平台

标题: 关于Form窗体切换超出10次报错的问题 [打印本页]

作者: ksbb2011    时间: 2019-4-20 22:21
标题: 关于Form窗体切换超出10次报错的问题
切换Form时,通过 show(Form);打开新窗体;再通过 this.Form.Close();关闭窗体,但是切换超出10次后,就会异常报错。报错提示:FormStackMaxCount exceed:10-..........



作者: ksbb2011    时间: 2019-4-20 22:28
异常见图
作者: Lula.Jin    时间: 2019-4-22 10:30
你需要及时关闭窗口而不是一直show,窗口关闭this.Close()
作者: Lula.Jin    时间: 2019-4-25 13:18
可以利用回调来关闭窗口,例如,窗体a跳转窗体b,在关闭b的时候同时关闭a,在窗体a中写
  1. a.Show(b,(obj,args)=>{
  2. this.Close()});//注意:a.Show(b);a.Close();此写法错误
复制代码

toolbar跳转窗口可参照https://www.smobiler.com/forum.p ... =%E5%95%86%E5%9F%8E
作者: ksbb2011    时间: 2019-4-25 16:33
Lula.Jin 发表于 2019-4-25 13:18
可以利用回调来关闭窗口,例如,窗体a跳转窗体b,在关闭b的时候同时关闭a,在窗体a中写
toolbar跳转窗口可 ...

如果从a页面(代办列表页)打开b页面(详情审批页),b页面处理完毕后更新数据库后,直接通过this.Close()关闭,
那么如何在关闭b页面后,更新a页面的数据内容?

(如果通过 new a,和show(a)来实现重新load页面数据的话,频繁循环操作,又会出现超出10个页面报错的问题。)何解???
作者: Lula.Jin    时间: 2019-4-25 17:24
ksbb2011 发表于 2019-4-25 16:33
如果从a页面(代办列表页)打开b页面(详情审批页),b页面处理完毕后更新数据库后,直接通过this.Close ...

参考这个帖子,方法类似https://www.smobiler.com/forum.p ... =%E5%88%B7%E6%96%B0,你一直new窗体你就需要及时关闭啊,你重新刷新窗体数据没有必要一直new新窗体时,你另外写方法刷新不就好了

作者: yuguanjun    时间: 2019-9-23 16:58
本帖最后由 yuguanjun 于 2019-9-23 17:02 编辑

我写
this.Show(Form2,(obj,args)=>{this.Close();});
没用啊,还是会出现FormStackMaxCount exceed:10错误;
我做的主要功能是角色切换,切换一个角色就调用了一下上面的方法,跳转至其它窗体,如果角色反复切换就会超出限制了
作者: Lula.Jin    时间: 2019-9-23 17:31
yuguanjun 发表于 2019-9-23 16:58
我写
this.Show(Form2,(obj,args)=>{this.Close();});
没用啊,还是会出现FormStackMaxCount exceed:10错误 ...

需要有页面执行this.close的,窗体a跳转b,窗体a中写代码this.Form.Show(b,(obj,args)=>{this.Close();});,窗体b中执行this.close,b关闭后同时关闭a,
作者: Lula.Jin    时间: 2019-11-13 14:01
示例demo:[attach]1722[/attach]
作者: linyan    时间: 2019-12-31 10:02
已经是这种写法了,但仍然跳转超过10次会报错。
SmobilerForm1 frm1 = new SmobilerForm1();
                    Show(frm1, (obj, args) => { Close(); });
作者: linyan    时间: 2020-1-2 05:31
linyan 发表于 2019-12-31 10:02
已经是这种写法了,但仍然跳转超过10次会报错。
SmobilerForm1 frm1 = new SmobilerForm1();
             ...

问题已经解决,这里主要是没有理解“需要有页面执行this.close的”这名话,一定要设计一个页面执行关闭,而不是跳转,才能生效。谢谢官方技术支持!
作者: wujiajun524    时间: 2020-2-22 09:16
linyan 发表于 2020-1-2 05:31
问题已经解决,这里主要是没有理解“需要有页面执行this.close的”这名话,一定要设计一个页面执行关闭, ...

请问一下,a跳转b,b的close应该在哪写(b不是最终界面)
作者: 北子岛230    时间: 2020-12-12 14:45
你好  哪位大神可以把  “需要有页面执行关闭“,具体成代码啊。最近项目里碰到这个问题

作者: zy_2050    时间: 2021-3-18 14:49
linyan 发表于 2020-1-2 05:31
问题已经解决,这里主要是没有理解“需要有页面执行this.close的”这名话,一定要设计一个页面执行关闭, ...

您好,具体怎样解决呢?我也遇到了同意的问题,toolbar的两个界面反复切换,次数超过10就报错了
作者: kevingu    时间: 2021-4-10 21:49
北子岛230 发表于 2020-12-12 14:45
你好  哪位大神可以把  “需要有页面执行关闭“,具体成代码啊。最近项目里碰到这个问题
...

解决了吗?子窗口的关闭代码怎么写呢
作者: yongqiang    时间: 2021-7-19 14:28
linyan 发表于 2019-12-31 10:02
已经是这种写法了,但仍然跳转超过10次会报错。
SmobilerForm1 frm1 = new SmobilerForm1();
             ...

解决了吗,我也遇到这种情况了




欢迎光临 Smobiler上海石磨_.NET移动开发平台 (https://www.smobiler.com/) Powered by Discuz! X3.2