【发布时间】:2014-06-11 13:07:17
【问题描述】:
我在使用 TStringGrid (Delphi XE) 时遇到了一些非常非常奇怪的事情。我已经看到,有时当我单击网格中的第一行时,它会变成黑色(或显示从表单上的其他控件“窃取”的乱码画布)。 它仅在某些配置中发生,当网格获得焦点时。单击网格中的另一个区域后,一切看起来都很好,直到焦点移动到另一个 TStringGrid。
如何重现:
- 将两个字符串网格放在一个表格上
- 如下所示设置它们(更新:我意识到 goRowSelect 和 goEditing 必须为 'true')
- 单击一个网格中的第一个单元格 -> 没有任何反应
- 单击第二个网格中的第一个单元格 -> 第一个单元格变黑(见屏幕截图)
这个问题也出现在其他情况下(不需要在表单上有 2 个网格),但我只有在有 2 个网格时才设法重现它。
object grid1: TStringGrid <------- same for Grid2
Left = 2
Top = 8
Width = 422
Height = 381
BevelEdges = [beLeft, beTop]
DefaultColWidth = 80
DefaultRowHeight = 15
DoubleBuffered = True
FixedCols = 0
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goColSizing, goEditing, goRowSelect, goFixedHotTrack]
ParentDoubleBuffered = False
TabOrder = 1
end
关于如何解决这个问题的任何想法?
【问题讨论】:
-
我可以用给定的信息复制它。
-
花了 2 个小时来追踪这个问题。我认为这是我的自定义 TStringGrid 库中的一个问题(尤其是“绘制”方法)。
-
@SertacAkyuz-哪个德尔福?
-
使用 XE。 XE2 似乎不会发生这种情况。
-
选项
goEditing和goRowSelect是互斥的。如果您选择了整行,您将如何编辑网格?
标签: delphi delphi-xe tstringgrid