本文整理自网络,侵删。
如果要拦截TAB键行为,应该捕获 CM_DIALOGKEY 消息。在这里示例中,如果将 YouWantToInterceptTab 布尔值设置为 true,则将会吃掉 TAB 键:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) private YouWantToInterceptTab: Boolean; procedure CMDialogKey(var AMessage: TCMDialogKey); message CM_DIALOGKEY; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.CMDialogKey(var AMessage: TCMDialogKey);begin if AMessage.CharCode = VK_TAB then begin ShowMessage('TAB key has been pressed in ' + ActiveControl.Name); if YouWantToInterceptTab then begin ShowMessage('TAB key will be eaten'); AMessage.Result := 1; end else inherited; end else inherited; end;end.
相关阅读 >>
更多相关阅读请进入《Delphi》频道 >>