来顶帖者有分~~少了再给!

hnzhc 2004-11-29 09:11:57
请问VB中如何屏蔽Text框的粘贴?
...全文
180 点赞 收藏 37
写回复
37 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lxcc 2004-11-30
Text1.Locked = True

肯定不行,右键可以粘贴
回复
lxcc 2004-11-30
来个狠点的!

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Clipboard.Clear
End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Clipboard.Clear
End Sub
回复
一如当初 2004-11-30
我不知道,顶一下,给分 :)
回复
Andy__Huang 2004-11-30
你翻開一下老的帖子,這方面的內容已經有說過了
回复
韧恒 2004-11-30
wwqna(york) 的子分类是最理想的。即不破坏剪切板中原有的数据,又可以在此时对剪切板的数据进行检查。 其实,之所以不想让用户向textbox中粘贴数据,主要原因可能是对此textbox中的数据进行了某种要求,这样,使用子分类就可以使符合条件的数据进行粘贴,而屏蔽无效的数据。
我在写程序时就是这么用的。
回复
wqxu 2004-11-30
up
回复
saiko 2004-11-30
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
eixt sub
End If
End Sub
回复
jifangkeji 2004-11-30
当你需要此功能时让定时器启动,每20亳秒清一次剪切板,它的右键中粘帖命令就无法使用了,用CTRL+V也没有了!
Private Sub Timer1_Timer()
Clipboard.Clear
End Sub
回复
wwqna 2004-11-30
模块的:
Option Explicit
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public Const WM_PASTE = &H302

Private oldProc As Long

Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_PASTE Then
Exit Function
End If
WndProc = CallWindowProc(oldProc, hwnd, uMsg, wParam, lParam)
End Function

Public Function HookText(ByVal hwnd As Long) As Boolean
oldProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WndProc)
End Function

Public Function UnHookText(ByVal hwnd As Long) As Boolean
Call SetWindowLong(hwnd, GWL_WNDPROC, oldProc)
End Function

'form的
Private Sub Form_Load()
HookText Text1.hwnd
end sub

Private Sub Form_Unload(Cancel As Integer)
UnHookText Me.hwnd
End Sub
回复
myhgyp 2004-11-30
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Clipboard.Clear
End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Clipboard.Clear
End Sub
这个方法绝
回复
dyx 2004-11-30
学习up
回复
lightdark 2004-11-30
努力学习ing
回复
magicgod79 2004-11-30
打了SP6,Lock设为True就不可粘贴了!但是该Text还是可以被选择,若不想被选择就要自己设定SelStart、SelLength啦!
回复
kmzs 2004-11-30
可以判断Ctrl+V的AscII值(24也不是26),来屏蔽(keyasc=0)
回复
daisy8675 2004-11-30
你把VB打下SP6,记住不是SP5是SP6,使用lock属性就不能粘贴了
回复
行云边 2004-11-30
顶一下
回复
EricaNet 2004-11-30
顶一下
回复
jimmyge 2004-11-30
學習
回复
Abyss-Xu 2004-11-30
只恨微软没有给出这样的功能呀
回复
lyxhappy 2004-11-30
UP
回复
发帖
VB基础类
创建于2007-09-28

7476

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2004-11-29 09:11
社区公告
暂无公告