zoukankan      html  css  js  c++  java
  • 觉得PowerBuild语言的clicked方法有问题

    PowerBuild语言不怎么流行,因为公司系统的原因开始接触这门语言,至今已有半年。

    今天在制作一张发货单的过程中发现了一个问题。
    在发货单的datawindow的一个checkbox复选框clicked事件中,添加如下代码:

    dw_detail.accepttext()
    messagebox(
    "",row)
    if dwo.name="unfinished" then
    if dw_detail.getitemnumber(row,"unfinished")=1 then
    dw_detail.deleterow(row)
    end
    if
    end
    if

    发现datawindow的clicked的方法,在鼠标单击时激活事件,而不是单击后激活事件。
    既:鼠标按下-->激活事件-->鼠标弹起-->checkbox值改变

    正常情况下,或者按字面意思理解 clicked 应该是在 鼠标按下-->鼠标弹起 过程结束后激活事件。

    之后我在PowerBuild的Window里使用控件测试Clicked事件 和在 C#的Winform里使用控件测试Click事件,均是鼠标单击后激活事件。
    既:鼠标按下-->鼠标弹起-->激活事件

    查看了下PB的API,里面写的鼠标单击执行,并没有特别声明是单击后,还是单击时激活事件。

    [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[荡漾的分割线[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[

    产生的问题:在clicked下执行该段代码,多行checkbox情况下,会删除选中行后,下一行checkbox改变值,导致数据错误。


    后来分别尝试了 getfocus(这个必须在方法中给某个字段设置焦点时激活) 和 editchanged(这个不捕捉checkbox值改变) 均失败。看来只能绕过这个问题,换其他方式解决了。

    悲剧,代码语言里找不到PB语言,但愿快点淘汰这玩意吧!虽然datawindow真的很好用!

  • 相关阅读:
    第四十七讲 ASP.NET实例编程(六)
    第四十四讲 ASP.NET实例编程(三)
    第四十一讲 ASP.NET消息处理(二)
    第四十三讲 ASP.NET实例编程(二)
    第四十二讲 ASP.NET实例编程(一)
    第四十六讲 ASP.NET实例编程(五)
    第四十八讲 ASP.NET实战编程(一)
    第四十讲 ASP.NET消息处理(一)
    第四十五讲 ASP.NET实例编程(四)
    第三十九 ASP.NET编码
  • 原文地址:https://www.cnblogs.com/21xz/p/1897993.html
Copyright © 2011-2022 走看看