在文本框中不能使用粘贴

前端之家收集整理的这篇文章主要介绍了在文本框中不能使用粘贴前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

分享一下实用代码,希望能给大家带来帮助。

设置剪贴板的字符无法向TextBox粘贴的方法

设置「Ctrl + V」和文本菜单无效的方法

[VB.NET]

''' <summary>
''' 使鼠标和键盘的粘贴无效的TextBox
''' </summary>
Public Class MyTextBox
Inherits TextBox
Private pasteKeys As Keys = Keys.V Or Keys.Control

Public Sub New()
'设置文本菜单不表示
Me.ContextMenu = New ContextMenu
End Sub

Protected Overrides Function ProcessCmdKey( _
ByRef msg As Message,ByVal keyData As Keys) As Boolean
'设置Ctrl+V无效
If (keyData Or pasteKeys) = pasteKeys Then
Return True
Else
Return MyBase.ProcessCmdKey(msg,keyData)
End If
End Function
End Class

  1. [C#]
  2. //using System.Windows.Forms;
  3. //上面一行写在代码的最上面
  4.  
  5. /// <summary>
  6. ///使鼠标和键盘的粘贴无效的TextBox
  7. /// </summary>
  8. public class MyTextBox : TextBox
  9. {
  10. const Keys pasteKeys = Keys.V | Keys.Control;
  11.  
  12. public MyTextBox() : base()
  13. {
  14. //设置文本菜单不表示
  15. this.ContextMenu = new ContextMenu();
  16. }
  17.  
  18. protected override bool ProcessCmdKey(ref Message msg,Keys keyData)
  19. {
  20. //设置Ctrl+V无效
  21. if ((keyData | pasteKeys) == pasteKeys)
  22. return true;
  23. else
  24. return base.ProcessCmdKey(ref msg,keyData);
  25. }
  26. }

无视WM_PASTE消息的方法

另外,下面介绍的代码就是设置WM_PASTE消息无视的方法

  1. [VB.NET]
  2. ''' <summary>
  3. '''使鼠标和键盘的粘贴无效的TextBox
  4. ''' </summary>
  5. Public Class MyTextBox
  6. Inherits TextBox
  7. Private WM_PASTE As Integer = &H302
  8.  
  9. Protected Overrides Sub WndProc(ByRef m As Message)
  10. If m.Msg = WM_PASTE Then
  11. Return
  12. End If
  13. MyBase.WndProc(m)
  14. End Sub
  15. End Class
  1. [C#]
  2. //using System.Windows.Forms;
  3. //上面一行写在代码的最上面
  4.  
  5. /// <summary>
  6. ///使鼠标和键盘的粘贴无效的TextBox
  7. /// </summary>
  8. public class MyTextBox : TextBox
  9. {
  10. const int WM_PASTE = 0x302;
  11.  
  12. protected override void WndProc(ref Message m)
  13. {
  14. if (m.Msg == WM_PASTE)
  15. return;
  16.  
  17. base.WndProc(ref m);
  18. }
  19. }

.NET Framework 2.0以后版本,使用ShortcutsEnabled属性方法

从.NET Framework 2.0版本开始,TextBox的类里追回了ShortcutsEnabled属性。当属性设置为false时,在TextBox中使用的快捷键都无法使用。而且,文本菜单也无法表示。所以,字符串粘贴也无法使用。

但是,所有的快捷方式也都无效,复制等操作也无法使用。

猜你在找的VB相关文章