DBGridでデータを表示していて、編集をしてエンターキーを押すと次のセルに移動させようと思っております
以下例
ID|名前|年齢
10|田中|20
20|山田|22
田中のセルにカーソルがある状態でエンターを押す次のセルの20にカーソルをいかせたいのです
procedure TForm1.DBGridKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
//ここに次セルに移動の処理がちょっとわからなくてとまっております
end;
end;
ご教授お願いします
とりあえず 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キーでセル移動すると、データの確定だけをする場合に工夫が必要ですよね。
特定の列だけに適用したいとか、編集状態を選びたいとかがあればまた質問をどうぞ。
>>Kennyさん
教えていただきありがとうございます、とりあえずこの方法でやっていこうと思います
ツイート | ![]() |