首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Enter 鍵替代 Tab 鍵切換焦點:完整實作指南

     編輯:關於SqlServer

在資料輸入密集的表單中,使用者習慣按 Enter 鍵移動到下一個控件。Delphi 可透過表單的 OnKeyPress 或 OnKeyDown 事件攔截按鍵,並呼叫 Perform(WM_NEXTDLGCTL, 0, 0) 模擬 Tab 鍵行為。

核心程式碼

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then // Enter 鍵
  begin
    // 可選:排除特定控件(如 StringGrid)
    if not (ActiveControl is TStringGrid) then
    begin
      Key := #0; // 避免發出嗶聲
      Perform(WM_NEXTDLGCTL, 0, 0); // 移動焦點
    end;
  end;
end;

必要設定

務必將表單的 KeyPreview 屬性設為 True,否則表單不會接收到按鍵訊息。

OnKeyDown 版本

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_RETURN then
  begin
    if not (ActiveControl is TStringGrid) then
    begin
      Key := 0;
      Perform(WM_NEXTDLGCTL, 0, 0);
    end;
  end;
end;

注意事項

  • 若表單包含 TButton 且 Default 屬性為 True,按 Enter 會觸發按鈕而非換欄,需視需求調整。
  • 多行編輯控件(TMemo)通常需保留 Enter 換行功能,可在條件中排除。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved