可以在数据窗口的itemchanged里面写代码
比如在里面写:
messagebox('提示','有数据修改未保存,请保存')
这个时候只要用户修改了数据窗口未保存,会提示未保存,或者你可以在itemchanged事件写:dw_1.settransobject(sqlca)
dw_1.retrieve()
这个时候会重新刷新数据窗口
直接在rowfocuschanged事件中,写this.retrieve(),就可以了。
rowfocuschanged表示光标换行之后触发。
那么,就是说,如果行变,不会执行retrieve,保存,没问题。
可是行转换之后,就会触发一次retrieve(),相当于每次换行,就会刷新数据窗口的内容。
//定义局部变量
string is_old_data //原来数据
long il_row //原来行号
string is_col_name //原来列名
itemchanged里面写代码:
//取原来的数据
is_old_data=this.getitemstring(row,this.GetColumn())
is_col_name=dwo.name
il_row=row
rowfocuschanged事件中,写:
this.setitem(il_row,"'"+is_col_name+"'",is_old_data)
this.accepttext()