Delphi Firemonkey网格:导航时的不可见列

时间:2016-11-07 10:58:11

标签: delphi firemonkey delphi-10-seattle tgrid

TGrid上的FMX有3列,第二列是Visible False,如果我点击第一列并按箭头将焦点放在下一个可见列上,光标没有进入第三列,它消失了,好像聚焦在第二列,如果我再次按箭头,那么他就会进入第三列。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

使用OnSelectCell事件,如下所示:

procedure TForm7.Grid1SelectCell(Sender: TObject; const ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  if not (Sender as TGrid).Columns[ACol].Visible then
  begin
    CanSelect := False;
    if (Sender as TGrid).ColumnByIndex(ACol+1) <> nil then
      (Sender as TGrid).SelectColumn(ACol+1);
  end;
end;

顺便说一下,你没有说你正在使用哪个版本的Delphi,并且存在差异。在询问Firemonkey时,请始终使用您的Delphi版本标记问题。这是一个更新:

  • 在Delphi 10.1 Berlin中,不需要上述修复。

  • 在Delphi 10 Seattle和更早版本(我验证到XE6)需要修复

您可能还注意到,在另一个方向(从右到左)中选择无需修复Delphi 10 Seattle及更早版本(这解释了为什么只需要考虑ACol + 1)。