我刚刚发现使用toUseExplorerTheme选项可以为VirtualStringTree创建一个漂亮的选择矩形。然而,如果设置了toGridExtensions选项并且树中有多个列,则内部单元格的垂直边框不会绘制,并且圆角也会丢失。只有最左边和最右边列的最外侧边缘和角落被正确绘制。看起来好像选择矩形是在最外面的列之间绘制的,非选定列的背景仅在选择矩形上绘制。
关闭toGridExtensions可以得到正确的选择矩形,但我更喜欢保持它打开,因为在标准模式下只能通过单击文本来选择单元格(不能通过单击文本旁边的空白区域来选择)。
该问题出现在Delphi 7和XE2中,可能也会出现在其他版本中。
要重现,请向窗体添加TVirtualStringTree,显示标题,向标题添加多个列,并激活toGridExtensions(MiscOptions),toUseExplorerTheme(PaintOptions),toExtendedFocus(SelectionOptions)选项,运行程序并单击任何单元格。
关闭toGridExtensions可以得到正确的选择矩形,但我更喜欢保持它打开,因为在标准模式下只能通过单击文本来选择单元格(不能通过单击文本旁边的空白区域来选择)。
该问题出现在Delphi 7和XE2中,可能也会出现在其他版本中。
要重现,请向窗体添加TVirtualStringTree,显示标题,向标题添加多个列,并激活toGridExtensions(MiscOptions),toUseExplorerTheme(PaintOptions),toExtendedFocus(SelectionOptions)选项,运行程序并单击任何单元格。