datawindow的edit有editchanged事件,即一改变内容就触发,我想将这个事件加在multilineedit控件里,自定义事件要选择哪个EventID?

foreveryouth 2002-08-20 09:32:55
rt.

不是要losefocus再触发?

谢谢!!!
...全文
300 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sulo_xxr 2002-08-20
  • 打赏
  • 举报
回复
modified事件可以吗?
licyme 2002-08-20
  • 打赏
  • 举报
回复
你说的对,this.text取出的值没有包括key值,
不过你可以自己把它加上,当然需要先把key转换为字符才行,
把这个写成函数吧,以后用的着。
foreveryouth 2002-08-20
  • 打赏
  • 举报
回复
高手帮帮忙!!!
foreveryouth 2002-08-20
  • 打赏
  • 举报
回复
我也用的pbm_keydown可是我debug时发现

string ls_1
dw_1.setitem(dw_1.getrow(),"comment",this.text)
ls_1=this.text

this.text没有变化,我估计在触发pbm_keydown时并没有将key值写入multilineedit里。

高手帮帮忙!!!
licyme 2002-08-20
  • 打赏
  • 举报
回复
pbm_keydown可以吧
TianChong 2002-08-20
  • 打赏
  • 举报
回复
刚才没看清问题:
如果不是数据窗口的话要用
pbm_enchange


Eric2000 2002-08-20
  • 打赏
  • 举报
回复
PBM_ENCHANGED事件
Windows EventID
触发时机:控件Text变化时。
原型参见MSDN
原事件名称:En_change
TianChong 2002-08-20
  • 打赏
  • 举报
回复
你要的事件ID应该是这个呀:
pbm_dwnchanging
只要datawindow的数据一变,那怕是只将0改成1(不用回车)它就能触发这个事件。

你可以自定义事件:editchanged
事件ID选它:pbm_dwnchanging
内容如下:
if messagebox("提示","数据窗口内容已改动,是否保存? ",infomation!, YesNo!)=1 then
dw_1.update()
end if

//另外你这个
dw_1.setitem(dw_1.getrow(),"comment",this.text)
是不会触发事件的,因为你把它设置为等于自己的值了,即值没有改变,系统则认为没有改动过,一定要改变了值才行.这点要注意.
如:
将123改成123 就相当于没有动过
将123改成444就动过了,如果又将它改回123,那么又改动了一次了.
//还有如果用pbm_dwnchanging则每一位数的改动都会被触发,和modified不同,modified是全部输入后并离开焦点才会被触发.
如上例,将123改成444将会弹出三次对话框,如果改为111则会弹出2次对话框,因,前面那个1相对应,PB认为你还没有改动,后面两位不同了,就触发事件.

611

社区成员

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

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