覺得PowerBuild語言的clicked方法有問題

來源:互聯網
上載者:User

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真的很好用!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.