先设置表单域值,再设置flags,为什么没有flags生效?

问题场景:

例如有个文本域,原本的flags是没有包含换行的,通过SDK设置长字符串后,再为flags增加换行属性,最终文档保存后打开,发现似乎flgas并没有设置成功,没有出现预期的换行效果。

问题原因和解决办法:

需要修改一个表单域的内容和flags,通常可以先修改flags,再设置内容value。因为在设置value时,会自动刷新显示外观。相反的,如果先设置value,再设置flags。则会出现flgas设置成功,但外观没有刷新的情况。

解决办法:

可以改为先设置flags,再设置表单域的值。如果顺序颠倒,也可以调用如下代码进行手动刷新外观: field.getControl(0).getWidget().resetAppearanceStream();。