【发布时间】:2019-06-28 08:46:59
【问题描述】:
我在 C++ Builder 项目中使用的 TStringGrid 组件似乎默认交替行颜色。偶数行具有灰色背景,而奇数行具有白色背景。如何禁用这种交替着色,以便所有行都具有相同的背景颜色?
它是这样的:
这里是 DFM 中的对应条目:
object StringGrid1: TStringGrid [0]
Left = 0
Top = 0
Width = 744
Height = 300
Align = alClient
FixedCols = 0
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
Options = [goFixedHorzLine, goVertLine, goHorzLine, goColSizing, goRowSelect]
ParentFont = False
TabOrder = 0
OnSelectCell = StringGrid1SelectCell
ColWidths = (
64
64
64
64
64)
end
【问题讨论】:
-
标准
c++builder/delphi TStringGrid没有交替的行颜色。也许您正在使用来自另一个组件集的字符串网格?请在设计器中右键单击表单,从弹出菜单中选择View as Text,然后将内容复制粘贴到您的问题中。 -
@TomBrunberg 完成。您需要整个文件的内容还是只需要 TStringGrid 条目?
-
感谢您的编辑。我真的很惊讶。我无法测试,因为我没有
C++Builder第 6 版。但是在Delphi第 7 版中测试我无法重现。我可能错了,但我很确定早期版本(从 v.1 开始)中的字符串网格也没有该功能,因为我使用了OnDrawCell()事件来绘制交替颜色(来自我们的 .dfm看到在你的情况下也没有使用)。我只能建议也许字符串网格不是Delphi/C++Builder字符串网格。你能用 std 组件在新项目中重现它吗? -
或者,如果你继承了
C++Builder环境和项目,可能是更早的程序员,修改了标准组件? -
@TomBrunberg 我在工作中使用 C++Builder 6,并且可以确认库存
TStringGrid没有任何对交替单元格颜色的本机支持,您必须使用OnDrawCell事件来执行该操作手动