在处理PowerBuilder的itemchanged事件中,acceptText的使用介绍

在窗口的itemchanged事件中,获取当前输入的值时,往往是无法拿到值的,此时值还没有提交,

所以获取的都是null,此时可以通过使用dwcontrol.acceptText() 来设置值的提前存储.

代码例子(这里的例子只需要看前面几行,后者)如:

if dwo.name="jyxm" then  //列名

  dw_3.acceptText()  //提前存储

  ls_jyxm = dw_3.getitemstring( row, "jyxm")  //这里可以获取到还没保存的字符值。

end if

此处的dw_3.accepttext()可以将还没有提交的检验项目jyxm提交到缓存中,并使用.

注意点: 通常情况下,当用户移动到DataWindow中的新单元格时,新数据将被验证和接受。

如果新数据导致错误,将显示一个消息框,这将导致DataWindow失去焦点。

如果您还将LoseFocus事件或从LoseFocus发布的事件编码为调用AcceptText以在控件失去焦点时验证数据,则此AcceptText会因为消息框而运行,并触发验证错误的无限循环。

为了避免发生这种问题,在使用AcceptText时,要确定此时的鼠标焦点已经离开选中的框中。

 

posted @ 2022-02-12 14:21  窗床外的鱼  阅读(779)  评论(0)    收藏  举报