读书人

关于 dw 1.accepttext()的一个小疑点

发布时间: 2012-08-15 16:57:17 作者: rapoo

关于 dw 1.accepttext()的一个小问题
我有个保存按钮 通过getitem 来获取填入数据窗口中的数据
但如果不在最前面加上dw 1.accepttext() 有部分在数据窗口中输入汉字的字段读不到数据,这是为什么呢?
//dw_1.accepttext( )
string address
address=dw_1.getitemstring(dw_1.getrow(),14)
messagebox("",address)
如果不加前面的dw_1.accepttext() 当在adress栏输入汉字时用messagebox就不能读到数据,但输入字母就可以读到 不知道为什么。



[解决办法]
在DW里输入数据后,数据并未直接成为DW的值,而是位于一个缓冲区里。这是如果调用getitem..()函数只能获取原值,而不能获取新录入的值,但是使用dw.gettext()则可以获取这个值。这个是不区分中文或者英文或者数字的。
只有调用accepttext(),或者当焦点离开这个item进入DW的另外一个item后,这个值才会被接受,或者我们录入完毕后直接回车也会是同样的效果。

有可能你录入完英文后会有回车之类的动作。

在dw的值改编后使用accepttext()对数据进行验证是一个好的习惯。
[解决办法]

探讨
在DW里输入数据后,数据并未直接成为DW的值,而是位于一个缓冲区里。这是如果调用getitem..()函数只能获取原值,而不能获取新录入的值,但是使用dw.gettext()则可以获取这个值。这个是不区分中文或者英文或者数字的。
只有调用accepttext(),或者当焦点离开这个item进入DW的另外一个item后,这个值才会被接受,或者我们录入完毕后直接回车也会是同样的效果。

有可能你录入完英文后会有回车之类的动作。

在dw的值改编后使…

[解决办法]
在DW里输入数据后,数据并未直接成为DW的值,而是位于一个缓冲区里。这是如果调用getitem..()函数只能获取原值,而不能获取新录入的值,但是使用dw.gettext()则可以获取这个值。这个是不区分中文或者英文或者数字的。
只有调用accepttext(),或者当焦点离开这个item进入DW的另外一个item后,这个值才会被接受,或者我们录入完毕后直接回车也会是同样的效果。

上面的解释非常正确,

[解决办法]
或者也可以在DW控件的losefocus事件中写 accepttexe()

[解决办法]
回车即是执行accepttext()

读书人网 >PB

热点推荐