从单击行内任意单元格选择TStringGrid中的一行。

6

我在一个窗体上有一个TStringGrid对象,它有1个固定列和1个固定行。当用户单击该行中的任何单元格时,我希望能够选择整个对象中的一行。此选择还必须对用户可见(我希望该行更改颜色)。

编辑:在对象选项中添加了goRowSelect。现在是否有一种方法可以在单击固定列中的一个单元格时选择该行?

2个回答

7
为了在用户点击该行中的任何单元格时突出显示整行,请设置以下StringGrid属性。
设计时:转到选项属性,并检查以下子属性。
goEditing := TRUE;
goRowSelect := TRUE;

为了在运行时实现这一点,
StringGrid1.Options := StringGrid1.Options + [goEditing];
StringGrid1.Options := StringGrid1.Options + [goRowSelect];

5
如果您启用字符串网格的选项goFixedColClick,则可以使用OnFixedCellClick事件确定要选择哪一行。 然后,您可以设置StringGrid1.Selection:= TGridRect(Rect(0,Row,n,Row));其中Row是单击的行,n是您的StringGrid的宽度。

非常抱歉我在这方面很无知...但是我该如何选择行呢?我知道我需要使用在过程的发送器部分声明的ARow和ACol变量,但除此之外,我还是很迷茫。 - Seryth
@Seryth 我已经更新了我的答案,包括如何在代码中选择一行的详细信息。 - Andy_D
在更改选择之前,请确保用户单击了非固定行。 - Bruce McGee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接