【问题标题】:Selecting a row in TStringGrid from click on any cell within that row.通过单击该行中的任何单元格来选择 TStringGrid 中的一行。
【发布时间】:2014-02-28 11:50:26
【问题描述】:

我在具有 1 个 FixedCol 和 1 个 FixedRow 的表单上有一个 TStringGrid 对象。当用户单击该行中的任何单元格时,我希望能够选择对象上的整行。此选择还必须对用户可见(我希望该行改变颜色)。

编辑:已将 goRowSelect 放入对象的选项中。现在有没有办法通过单击固定列中的一个单元格来选择行?

【问题讨论】:

    标签: delphi tstringgrid


    【解决方案1】:

    为了在用户单击该行中的任何单元格时突出显示整行,请设置以下 StringGrid 属性。

    在设计时:转到 options 属性并检查以下子属性。

    goEditing := TRUE;
    goRowSelect := TRUE;
    

    为了在运行时实现这一点,

    StringGrid1.Options := StringGrid1.Options + [goEditing];
    StringGrid1.Options := StringGrid1.Options + [goRowSelect];
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 真的很抱歉我在这里的无知...但是我将如何选择行?我知道我需要使用在过程的 Sender 部分中声明的 ARow 和 ACol 变量,但除此之外,我很迷茫。
      • @Seryth 我已经更新了我的答案以包含有关如何在代码中选择一行的详细信息。
      • 在更改选择之前不要忘记确保用户点击了非固定行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      • 1970-01-01
      相关资源
      最近更新 更多