奇怪的问题,ShowModal()出来的窗体无法用Close()关闭?

sigui 2004-03-29 04:22:57
我在Button的OnClick()事件里写的:
if(this->FormState.Contains(fsModal))
Close();

在调试模式下没有一点问题,但是运行起来就是不能关闭,而且用Alt+F4都无法关闭,莫名其妙,在这个if里加上一个MessageBox也能正常弹出来,就是Close();这句就像是没写过似的……

情况出现在:如果创建窗体后马上按这个Button,则窗体被正常关闭;但是如果在窗体里做过对文件的读写操作后,Close()这句就失效了,真是搞不清楚是怎么回事……
...全文
398 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sigui 2004-03-29
  • 打赏
  • 举报
回复
好了,找到问题了,不知道哪个鬼在Form的OnClose()事件里去delete一个Edit控件,吃饱了撑的!
叶子哟 2004-03-29
  • 打赏
  • 举报
回复
你加一个退出按钮,将它的modalResult设为mrOk就行了
然后你在要退出的时候,调用它的双击事件就行了
sigui 2004-03-29
  • 打赏
  • 举报
回复
OnCloseQuery事件根本就没有,我在这个事件里显式的写上 CanClose =true; 调试的时候一切都好好的,运行起来还是老样子……因为这个窗体没有相应,所以只能在任务管理器里面杀掉它了……
springsea 2004-03-29
  • 打赏
  • 举报
回复
我这么做了,没问题,可以正常关闭!
你是不是在OnCloseQuery事件里做过什么?
最好将CanClose设为true试试
WbtServer 2004-03-29
  • 打赏
  • 举报
回复
到窗体的OnFormClose和FormCloseQuery事件里面看看是不是CanClose=false
sigui 2004-03-29
  • 打赏
  • 举报
回复
莫名其妙的地方就在于跟踪的时候没有任何问题,this指针也没有丢掉,很正常的Close()掉了;运行时加一个MessageBox也能弹出来,就是Close()不起作用,伤脑筋哪!

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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