我在使用条件格式的单个表单(主)中有一个连续的子表单(数据)。问题是,当我单击滚动条以在列表中向下移动时,条件格式将被删除,直到我取消单击滚动条为止。用鼠标滚轮在列表中滚动显示效果完美。
我怀疑这是由于点击所固有触发的格式的刷新或重画?
我尝试使用Application.Echo False
和Me.Repaint = False
,但没有运气(尽管我什至不知道该放在哪里)。
有人对此有任何经验吗?请注意,通过子窗体数据显示的数据是静态的,这意味着用户无法更新此特定子窗体中的字段(不确定是否可以简化任何内容)。
答案 0 :(得分:2)
在连续形式上,仅对视图内的记录执行条件格式。当新记录滚动到视图中时,在计算条件格式时会出现短暂的延迟。当记录滚动到视图之外时,其条件格式将被丢弃。您应该发现,使用鼠标滚轮滚动确实会导致条件格式的延迟。
在某些情况下,一种解决方案是将条件格式构建到记录源中。例如,假设Balance
的负值应显示为黄色背景,并且您希望能够快速滚动所有寻找黄色记录的记录。
我通过在记录源中添加另一个字段来做到这一点:
IIf([Balance] < 0, String(ChrW(9608),30), "") AS BalanceBG
,然后将其绑定到文本框,该文本框的文本颜色为黄色,字体为Courier。
9608字符是一个实心块,它们的字符串紧密地装配在一起以形成实心条。
此文本框位于[Balance]的TextBox的后面,即使上下滚动滚动条也将显示黄色背景。