在grid类型的数据窗口中,如果将detail域的autosize height属性勾选上,
假如当数据窗口中 列 A 的值为1时, 行高应该自动为 200, 而当列 A 的值为0时,行高应该自动为 100 。
但是在程序的实际运行过程中,如果你对原本列 A 的值为 0 的行执行以下语句:
dw_1.setitem(1, 'A', 1)
这个时候dw_1的第1行的行高并不会自动为 200 , 为什么呢?
因为 setitem 后该行中 A 列的数据虽然已经发生改变, 但是数据窗口的行结构信息并没有进行重绘。
你可能会想,有了,在 setitem 后面加上
dw_1.setredraw( true)
但是,实际情况是,加上了也无济其事。
正确的解决办法是,在 setitem 后:
//关键的地方
dw_1.rowsmove(row,row,primary!,dw_1,row,primary!) //row可以是dw_1中的任意有效行
或者:
//关键的地方
row = dw_1.insertrow( 0)
dw_1.deleterow(row)