VB文本框如何禁止粘贴特殊字符?

小小张自由—>张有博
2021年度博客之星全栈开发领域TOP5
博客专家认证
2019-12-24 11:13:22
文本框限制了特殊字符,但是粘贴能放进去。 限制了右键,但感觉得不偿失。 我改怎么办啊
...全文
134 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
VB业余爱好者 2019-12-24
  • 打赏
  • 举报
回复
引用 3 楼 张有博 的回复:
[quote=引用 2 楼 VB业余爱好者的回复:]要是想禁止粘贴,可以考虑在粘贴前清空剪贴板

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 2 And KeyCode = vbKeyV Then '如果是Ctrl+V,清空剪贴板
Clipboard.Clear
End If
End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then '如果是右键,清空剪贴板
Clipboard.Clear
End If
End Sub


如果想禁用右键菜单,那就得用钩子了,不是很擅长,就不给建议了

谢谢大佬,学到了,以后还得向您学习。[/quote]

我可不是什么大佬,共同学习,共同学习
  • 打赏
  • 举报
回复
引用 2 楼 VB业余爱好者的回复:
要是想禁止粘贴,可以考虑在粘贴前清空剪贴板

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 2 And KeyCode = vbKeyV Then '如果是Ctrl+V,清空剪贴板
Clipboard.Clear
End If
End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then '如果是右键,清空剪贴板
Clipboard.Clear
End If
End Sub


如果想禁用右键菜单,那就得用钩子了,不是很擅长,就不给建议了
谢谢大佬,学到了,以后还得向您学习。
VB业余爱好者 2019-12-24
  • 打赏
  • 举报
回复
要是想禁止粘贴,可以考虑在粘贴前清空剪贴板

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 2 And KeyCode = vbKeyV Then '如果是Ctrl+V,清空剪贴板
Clipboard.Clear
End If
End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then '如果是右键,清空剪贴板
Clipboard.Clear
End If
End Sub


如果想禁用右键菜单,那就得用钩子了,不是很擅长,就不给建议了
VB业余爱好者 2019-12-24
  • 打赏
  • 举报
回复
在textbox的change事件中进行处理可以吗?

以特殊字符“*”为例,在粘贴后,会触发Change事件,在Change事件中将“*”替换掉

Private Sub Text1_Change()
If InStr(Text1.Text, "*") <> 0 Then
Text1.Text = Replace(Text1.Text, "*", "")
Text1.SelStart = Len(Text1.Text)
End If
End Sub

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧