Aggiungi al tuo progetto una nuova classe (chiamandola, ad esempio, TextBoxNoPaste); quindi inseriscici come codice:
.codice:Public Class TextBoxNoPaste Inherits TextBox Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) Const WM_CONTEXTMENU As Integer = &H7B Const WM_PASTE As Integer = &H302 If Not (m.Msg = WM_CONTEXTMENU Or m.Msg = WM_PASTE) Then MyBase.WndProc(m) End If End Sub End Class
Aggiungi al tuo form le varie caselle di testo, quindi, nel codice del form, vai nella region "Codice generato da Progettazione Windows Forms" (qui mi riferisco a VB.NET 2003, mi pare in VB2005 sia leggermente differente); cerca del codice tipo questo:
e modificalo incodice:Friend WithEvents <nometextbox> As System.Windows.Forms.TextBox
(ripeti tale manovra per tutte le textbox in cui vuoi evitare che l'utente incolli del testo); poco sotto ci dovrebbe essere la sub InitalizeComponents; modificacodice:Friend WithEvents <nometextbox> As TextBoxNoPaste
incodice:Me.<nometextbox> = New System.Windows.Forms.TextBox
; anche qui, ripeti tale manovra per tutte le textbox in cui vuoi evitare che l'utente incolli del testo.codice:Me.<nometextbox> = New TextBox_NoMenu
A questo punto per l'utente non dovrebbe essere più possibile far apparire il menu contestuale e incollare (neanche con CTRL+V) nelle TextBox per cui hai effettuato le modifiche.

Rispondi quotando