DBGridでTab移動すると下に降りるのはなぜ?


sspm  2007-07-13 18:58:17  No: 27070  IP: 192.*.*.*

Delphi7でDBはAccess2000です。
DBのKeyをAutoNumberにしています。
TableをDBGridで表示して追加・編集を行っていますが、
イベント処理を入れない段階では、Tab移動は正常に動いていました。
追加後の表示を正常にするために下のイベント処理を入れたところ
この処理を通った後はカーソルがどの位置にあっても直下のFieldに
移動します。正常の移動が出来るようにしたいのですが
どうしたらよいでしょうか。
Table,DataSource,Gridのプロパティは規定値のままです。
同じような質問を発見しましたが、回答が無かったのでお願いします。

procedure TfrmSeito.tblSeitoAfterPost(DataSet: TDataSet);
begin
  tblSeito.Close;
  tblSeito.Open;
end;

編集 削除
HOta  2007-07-15 14:17:39  No: 27071  IP: 192.*.*.*

CloseしてOpenすれば、レコード位置は最初に戻ると思います。
どういう動きを期待しているのでしょうか?

編集 削除
sspm  2007-07-18 14:19:56  No: 27072  IP: 192.*.*.*

Close,Open後のフォーカスは確かにトップ行に戻ります。問題はその後の
Tabキーを押すことによる挙動です。私が期待していたのはTabキーを押すことで
フォーカスが最後のField以外であれば横へ横へと移動して、最後のFieldでTabを
押せば次の行のトップFieldへ移動すると期待していました。
ところがそうはならずにフォーカスがどこにあろうと次のレコードの同じFieldへ
移動するのです。感覚的にいうと「真下に降りる」という感じです。
ご理解頂けたでしょうか?

編集 削除