窗口执行完open事件之后,还会执行其他的事件吗?

sanesoft 2020-09-29 05:22:56
请问,窗口执行完open事件之后,还会执行其他的事件吗?
现有一个窗口w_child,其祖先窗口是w_parent,现在在祖先窗口中封装了一个函数来处理所有窗口中的控件,要在w_child中调用这个函数,因为无法直接在w_parent的open事件中调用这个函数,因为w_child窗口中有的控件在祖先窗口中还是没有的,又不想每一个w_child窗口在open事件的最后都加上这个调用函数的语句,所以想能否open事件执行完毕之后,还有其他的事件会执行,这样的话就可以直接写在这个事件里面了,要不然派生出来的窗口太多,每一个都要在窗口的open事件里面加上一行代码,工作量有点大。
...全文
1377 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
WMERP 2020-10-18
就是w_祖先open完接着child执行open再祖先的post_open,把post_open在祖先open事件中post event 方式调用,表示所有open事件包括继承的执行完后才执行,不管写在哪刚。
  • 打赏
  • 举报
回复
sanesoft 2020-09-30
谢谢您的解答。但是如果这样的话,还是要每一个w_child都加上这样一行代码来触发这个事件,因为各个窗口的控件都不一样,所以没法放在祖先窗口的open事件中。
  • 打赏
  • 举报
回复
aolixiaox 2020-09-30
“因为w_child窗口中有的控件在祖先窗口中还是没有的” 1、如果这些控件,每个w_child都有,那就把这些控件,添加到基类窗口就好. 2、如果这些控件每个w_child都不一样,那就只能是每个w_child编写独立的代码。所以我说有没有事件B,都一样。 你的问题可以再描述明确一点。 一点要open以后触发一个事件,只要自定义一个事件,使用post方式在open事件中触发它就可以了。 比如:postevent("ue_post"),ue_post自定义事件就会在open事件结束再触发。
  • 打赏
  • 举报
回复
sanesoft 2020-09-30
谢谢亲。
  • 打赏
  • 举报
回复
aolixiaox 2020-09-30
你不同的w_child,不同的控件,本身就没有可以复用的逻辑,也就不可能使用基类的方法来做。 除非是一些雷同的操作。比如设置背景颜色,也就是不管w_child有几个,有什么类型的控件,都把背景设置成同一个颜色。那是可以通过遍历control来实现。 这也是我让你 “你的问题可以再描述明确一点。”,也就是看看你的业务逻辑具体是什么,或许有其他的方式可以变通。
  • 打赏
  • 举报
回复
sanesoft 2020-09-29
现在就是想写在祖先窗口的B事件下面,而不是每一个w_child都调用一遍,但是这个祖先窗口的B事件要等w_child窗口的open事件执行完毕以后再执行。
  • 打赏
  • 举报
回复
aolixiaox 2020-09-29
你这个问题描述有点问题。 就算有了一个事件B,你还是不同的w_child要在事件B里书写不同的逻辑。区别只是,写在open事件下还是B事件下。 那有什么意义,还不如都写在open下面
  • 打赏
  • 举报
回复
发帖
数据库相关

743

社区成员

PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
帖子事件
创建了帖子
2020-09-29 05:22
社区公告
暂无公告