如何在TEdit中禁用复制/粘贴

Jon*_*nas 3 clipboard vcl c++builder

我想防止复制,剪切和粘贴我的TEdit.我怎样才能做到这一点?

我在控件上按下时尝试设置Key=NULLon KeyDown事件CTRL+V,但是没有用.

Jos*_*ley 5

您需要阻止将WM_CUT,WM_COPYWM_PASTE消息发送到您的TEdit. 这个答案描述了如何仅使用Windows API.对于VCL,子类化TEdit和更改其DefWndProc属性或覆盖其WndProc方法可能就足够了.


Mar*_*unu 5

将此分配给TEdit.OnKeyPress

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if (Key=#22) or (Key=#3) then Key:=#0;   // 22 = [Ctrl+V] / 3 = [Ctrl+C]
end;
Run Code Online (Sandbox Code Playgroud)