在mdi窗口中开打就居中显示的问题

iwangh 2009-05-29 09:59:19
请看以下代码,w_main是mdi类型主窗口,w_erp_map是子窗口,

opensheet(w_erp_map,w_main,2,original!) 打开窗口后,

w_erp_map.move((w_main.mdi_1.width - w_erp_map.width) / 2, (w_main.mdi_1.height - w_erp_map.height) / 2)

这句代码可以实现子窗口在mdi中居中显示。现在我想在opensheet子窗口时就居中显示,可是我在open,resize事件中move都不能实现,怎么办啊?

请各位指教一下,谢谢。
...全文
104 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
newease 2009-05-29
  • 打赏
  • 举报
回复
虽然语法格式上 PostEvent ()与 TriggerEvent ()相同 但 PostEvent ()函数只是邮寄一个
事件 要求 PowerBuilder 在以后的某个时间执行邮寄事件的事件处理程序 具体时间由PowerBuilder决定 之后当前程序继续执行
TriggerEvent ()通常用做同步调用 因为它等待被调用者执行完毕后才继续运行 而
PostEvent ()通常用做异步调用 它在发出请求执行信号后就继续运行自己的程序段了
如果 TriggerEvent()或PostEvent()函数位于事件处理程序的最后一行 且没有发生其他
事件时 两者的效果相同
iwangh 2009-05-29
  • 打赏
  • 举报
回复
用这个this.triggerevent("ue_post")就不行。resize事件后主窗口还运行什么了呢
iwangh 2009-05-29
  • 打赏
  • 举报
回复
可以。呵呵。能解释下为什么吗
newease 2009-05-29
  • 打赏
  • 举报
回复
楼主在窗口中新建一个自定义事件

如u_post 事件代码

opensheet(w_erp_map,w_main,2,original!)

在resize事件注释掉


//opensheet(w_erp_map,w_main,2,original!)

改为postevent("u_post")

试试这样能不能达到你的要求
iwangh 2009-05-29
  • 打赏
  • 举报
回复
我简单一点说吧。新建一个mdi类型主窗口,一个字窗口,在主窗口建立菜单,打开子窗口,子窗口就是居中显示。可是我想在主窗口打开时,就自动开打子窗口,在主窗口open或是resize事件中写上打开子窗口的语句,子窗口都不是居中显示。这该怎么做?
iwangh 2009-05-29
  • 打赏
  • 举报
回复
可能是我自己的问题,我在w_main窗口中用tab控件做了左侧选择类别,上下界面加了图片,所以mdi面积就小了,这段设置是在resize事件中写的。然后继续在resize中打开子窗口,opensheet(w_erp_map,w_main,2,original!),可是不行。我再继续写上w_erp_map.move((w_main.mdi_1.width - w_erp_map.width) / 2, (w_main.mdi_1.height - w_erp_map.height) / 2),这样才实现。
我有点不明白的是,我在主窗口菜单中写代码,打开子窗口,不写move语句,一样会居中显示。可是我在主窗口resize事件中打开主窗口,不写move语句,就不能居中显示。为什么呢?

呵呵,不知道我写的能让大家懂了么?
wag_enu 2009-05-29
  • 打赏
  • 举报
回复
应该是除MDI!类以外的窗口用 opensheet() 打开都可以.
wag_enu 2009-05-29
  • 打赏
  • 举报
回复
我试过了,将 w_erp_map 的类型设置为 popup!
并在其open事件里写上述move()代码是可行的.

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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