标题:如何限制用户粘贴进文本框?
取消只看楼主
txxb
Rank: 2
等 级:论坛游民
帖 子:104
专家分:59
注 册:2014-10-8
结帖率:96%
已结贴  问题点数:20 回复次数:2 
如何限制用户粘贴进文本框?
文本框只可以输入数字,可是我发现鼠标右键可以粘贴进去其他字符,
如何让鼠标右键粘贴不进去其他字符?
搜索更多相关主题的帖子: 文本框 如何 用户 
2014-12-01 18:04
txxb
Rank: 2
等 级:论坛游民
帖 子:104
专家分:59
注 册:2014-10-8
得分:0 
以下是引用xzlxzlxzl在2014-12-1 20:09:15的发言:

不嫌麻烦,用代码控制,很简单的。
Private Sub Text1_KeyPress(KeyAscii As Integer)
  If KeyAscii = 22 Then KeyAscii = 0   '禁止Ctrl+V键粘贴
End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = 2 Then MsgBox "禁止粘贴"   '禁止按鼠标左键粘贴
End Sub

不要msgbox怎么弄?不要任何提示
2014-12-01 23:16
txxb
Rank: 2
等 级:论坛游民
帖 子:104
专家分:59
注 册:2014-10-8
得分:0 
以下是引用xzlxzlxzl在2014-12-2 00:29:59的发言:

不要任何提示通用的方法是用钩子,相当繁琐,网上有相关代码。这里介绍一种我刚想到的一种方法,使用延时完成,一般可以欺骗常规用户(鼠标右键按长点时间,仍然会弹出右键菜单,但粘贴选项变灰;了)
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Dim t As Single
  If Button = 2 Then
    Clipboard.Clear    '清除粘贴板内容,万一弹出也没有什么可以粘贴
    Text1.Enabled = False
    t = Timer * 1000
    While Timer * 1000 - t < 300   '通过实验,0.3秒是一个合适的时间,不容易弹出右键菜单
      DoEvents
    Wend
    Text1.Enabled = True
    Text1.SetFocus
  End If
End Sub

感谢,我目前用的是清空剪切板
2014-12-02 07:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-439430-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.654913 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved