Bloqueando funções Copiar e Colar em caixas de texto

Em algumas situações, pode ser necessário impedir que o usuário copie ou cole dados em uma TextBox. No Visual Basic, isso pode ser feito interceptando eventos do teclado.

Bloqueando CTRL+C (Copiar) e CTRL+V (Colar)

O evento KeyDown não consegue detectar essas combinações, mas o evento KeyPress pode capturá-las pelos códigos ASCII das teclas:

CTRL+C → Código 3
CTRL+V → Código 22

Código para Bloquear Copiar e Colar

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 3 Or KeyAscii = 22 Then KeyAscii = 0
    ' CTRL+C = 3 e CTRL+V = 22 na tabela ASCII
End Sub

Explicação do Código

KeyAscii = 3 → Impede o uso de CTRL+C (Copiar).
KeyAscii = 22 → Impede o uso de CTRL+V (Colar).
KeyAscii = 0 → Cancela a ação da tecla pressionada.

Bloqueando Copiar e Colar com o Mouse

Se quiser evitar que o usuário clique com o botão direito e copie/cole pelo menu de contexto, desative a propriedade Enabled do Menu Padrão da Caixa de Texto:

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 2 Then Cancel = True ' Bloqueia o menu de contexto do botão direito
End Sub

Exemplo Prático

Essa função pode ser útil para:
Campos de senha ou dados sensíveis, evitando cópias indesejadas.
Sistemas de cadastro, impedindo colagens de valores incorretos.
Ambientes controlados, onde é necessário restringir o uso do CTRL+C e CTRL+V.


Posts Similares