私はTGrid3FMX列で、2 番目の列は ですVisible False。最初の列をクリックし、矢印を押して次の表示されている列にフォーカスすると、カーソルは 3 番目の列に移動せず、2 番目の列にフォーカスしているかのように消えます列、もう一度矢印を押すと、彼は 3 番目の列に移動します。
どうすれば修正できますか?
私はTGrid3FMX列で、2 番目の列は ですVisible False。最初の列をクリックし、矢印を押して次の表示されている列にフォーカスすると、カーソルは 3 番目の列に移動せず、2 番目の列にフォーカスしているかのように消えます列、もう一度矢印を押すと、彼は 3 番目の列に移動します。
どうすれば修正できますか?
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 シアトル以前 (XE6 まで検証済み) では、修正が必要です。
また、Delphi 10 シアトル以前のバージョンでは、他の方向(右から左)での選択が修正なしで機能することにも気づいたかもしれません(これは、ACol + 1考慮するだけでよい理由を説明しています)。