利用OnKeyPress事件 procedure Tform1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if (key in ['0','1','2','3','4','5','6','7','8','9'])or(key=#8) then else key:=#0; end;
//窗体上放一个ApplicationEvents控件,OnMessage事件代码如下: procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if GetParent(Msg.hwnd) <> DBGrid1.Handle then Exit; case Msg.message of WM_KEYDOWN: begin case Msg.wParam of Ord('C'), Ord('V'): Handled := ssCtrl in KeyDataToShiftState(Msg.lParam); end; end; end; end;
procedure Tform1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if (key in ['0','1','2','3','4','5','6','7','8','9'])or(key=#8) then
else key:=#0;
end;
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if GetParent(Msg.hwnd) <> DBGrid1.Handle then Exit;
case Msg.message of
WM_KEYDOWN:
begin
case Msg.wParam of
Ord('C'), Ord('V'): Handled := ssCtrl in KeyDataToShiftState(Msg.lParam);
end;
end;
end;
end;