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.