当前位置: 代码迷 >> PB >> dw中取单元格内容,该如何处理
  详细解决方案

dw中取单元格内容,该如何处理

热度:77   发布时间:2016-04-29 07:34:21.0
dw中取单元格内容
diary是char类型的

我在diary填入了内容后(没有保存)用下面的语句取出来却是空值
dw_1.getitemstring(dw_1.getrow(),'diary')
------解决方案--------------------
如果你在数据窗口中修改某一列的内容,该列的内容不会马上更新到数据缓存中,需要在数据窗口的列焦点改变时才会列新到数据缓存中。如果需要解决该问题,一般是在数据窗口的失去焦点的事件中写下:
this.accepttext()
------解决方案--------------------
这样讲吧,假设数据窗口有A、B两列,窗口上除了数据窗口外还有一个按钮,按钮中的代码为
string ls_a, ls_b
ls_a = dw_1.getitemstring(1, 'a')
ls_b = dw_1.getitemstring(1, 'b')
(1)假设你在数据窗口的第1行上的A列输入字符串a,然后马上单击按钮,虽然此时窗口中控件的焦点由dw转移到按钮上,但是由于dw中单元格的焦点尚未发生转移,所以A列中的数据并没有被dw接受,此时按钮执行的代码中ls_a无法取到正确的值a

(2)假设你在数据窗口的第1行上的A列输入字符串a,然后将焦点切换到第1行的B列并输入字符串b,之后马上单击按钮,窗口中控件的焦点由dw转移到按钮上,由于在单击按钮之前,dw中单元格的焦点由A列转移到B列过,所以A列中的数据已经被dw接受,而B列中的数据并没有被dw接受,此时按钮执行的代码中ls_a可以取到正确的值a,而ls_b无法取到正确的值b

将按钮中的代码改为
string ls_a, ls_b
dw_1.accepttext()
ls_a = dw_1.getitemstring(1, 'a')
ls_b = dw_1.getitemstring(1, 'b')

则(1)和(2)中ls_a和ls_b都可以正确的取到对应的输入值

  相关解决方案