DBGridで隣のセルに移動

解決


セル  2010-10-24 01:38:58  No: 39415

DBGridでデータを表示していて、編集をしてエンターキーを押すと次のセルに移動させようと思っております
以下例
ID|名前|年齢
10|田中|20
20|山田|22
田中のセルにカーソルがある状態でエンターを押す次のセルの20にカーソルをいかせたいのです
procedure TForm1.DBGridKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    //ここに次セルに移動の処理がちょっとわからなくてとまっております
  end;
end;

ご教授お願いします


Kenny  2010-10-24 03:50:49  No: 39416

とりあえず UsesにMessagesを追加し、DBGridのOnKeyDownイベントで

procedure TForm1.DBGridKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_RETURN then
      SendMessage(DBGrid1.Handle, WM_KEYDOWN, 9, 0);
end;

こうすればTABキーを押したのと同じように、次のセルへ移動します。
ただ、Returnキーでセル移動すると、データの確定だけをする場合に工夫が必要ですよね。
特定の列だけに適用したいとか、編集状態を選びたいとかがあればまた質問をどうぞ。


セル  2010-10-26 03:49:47  No: 39417

>>Kennyさん
教えていただきありがとうございます、とりあえずこの方法でやっていこうと思います


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加