用户
 找回密码
 立即注册

8

主题

13

帖子

1560

积分

金牌会员

Rank: 6Rank: 6

积分
1560
发表于 2019-4-20 22:21:35
切换Form时,通过 show(Form);打开新窗体;再通过 this.Form.Close();关闭窗体,但是切换超出10次后,就会异常报错。报错提示:FormStackMaxCount exceed:10-..........


分享至 : QQ空间
0 人收藏
使用道具 举报 回复
发表于 2019-4-20 22:28:55
异常见图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复
发表于 2019-4-22 10:30:47
你需要及时关闭窗口而不是一直show,窗口关闭this.Close()
使用道具 举报 回复 支持 反对
发表于 2019-4-25 13:18:22
可以利用回调来关闭窗口,例如,窗体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
使用道具 举报 回复 支持 反对
发表于 2019-4-25 16:33:06
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个页面报错的问题。)何解???
使用道具 举报 回复 支持 反对
发表于 2019-4-25 17:24:32
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新窗体时,你另外写方法刷新不就好了
使用道具 举报 回复 支持 反对
发表于 2019-9-23 16:58:58
本帖最后由 yuguanjun 于 2019-9-23 17:02 编辑

我写
this.Show(Form2,(obj,args)=>{this.Close();});
没用啊,还是会出现FormStackMaxCount exceed:10错误;
我做的主要功能是角色切换,切换一个角色就调用了一下上面的方法,跳转至其它窗体,如果角色反复切换就会超出限制了
使用道具 举报 回复 支持 反对
发表于 2019-9-23 17:31:32
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,
使用道具 举报 回复 支持 反对
发表于 2019-11-13 14:01:23
示例demo:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复 支持 反对
发表于 2019-12-31 10:02:46
已经是这种写法了,但仍然跳转超过10次会报错。
SmobilerForm1 frm1 = new SmobilerForm1();
                    Show(frm1, (obj, args) => { Close(); });
使用道具 举报 回复 支持 反对
12下一页
发新帖
您需要登录后才可以回帖 登录 | 立即注册