如何防止某些列在选择行时突出显示
问题描述:
我有一个半动态创建的窗口(并使用PowerBuilder 10.5)。现在有几列可以有不同的颜色,我想在选择一行时看到这些颜色。然而,我不知道如何取消选择这些列,并保留了第一对列。 我们应用程序中的高亮功能只是做了一个dw.selectrow(x,true)。如何防止某些列在选择行时突出显示
问候, 马里努斯
答
我不认为你会得到你想要使用selectrow
什么。如果您不需要多个选择,则可以使用数据窗口中的表达式更改当前行的背景。如果你想让一些列保持正常,你可以在你想要突出显示的那个矩形后面做一个矩形,而不是改变行的颜色。如果您需要突出显示多行,则必须通过添加一个虚拟列并使用它来控制背景来模拟多重选择,当然,您需要处理clicked
事件中的选择和取消选择。如果你有处理选定行的代码,你必须改变它们以使用新的方案,例如通过检查虚拟列中的值。
答
如果你想使用SelectRow(),也许使用SetRowFocusIndicator()会有所帮助。 IIRC(它已经接近十年了* s *因为我已经使用了它),它会禁用行着色来支持新方法。
想到的另一种方式是为使用GetRow()和CurrentRow()的背景色设置一个表达式。这并不是我的第一选择,因为它不会让视力障碍的用户通过标准的Windows颜色选择来选择他们可以处理的颜色,但是如果您对选择性列上的颜色指示无效,是要走的路。
祝你好运,
特里。
这是关于可访问性的好处。保持可访问性的一种方式是分别使用突出显示的项目的背景和文本的“突出显示”和“突出显示文本”系统颜色。另一种方法是为用户提供一种选择应用程序使用的颜色(如果不使用系统颜色)的方法。对于OP希望保持不突出显示的列,如果他们使用颜色来指示某些内容,则信息也应以另一种方式显示,例如以微帮助形式显示。 (如果您需要遵守规定,这是强制性的)。 – 2011-06-09 18:05:43