vb TextBox 禁止复制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb TextBox 禁止复制相关的知识,希望对你有一定的参考价值。
如何让用户不能复制TextBox中的内容?
截获系统消息1。截获右键点击
2。截获Ctrl+C
代码很长。。。一时也写不好
----------
还是写出来了
原理是直接截获textbox的copy消息
以下是代码
--------
新建一个模块,添加以下代码,注意一定要放在模块中
Option Explicit
Private Const GWL_WNDPROC = (-4)
Private Const WM_RBUTTONDOWN = &H204
Public Const WM_COPY = &H301
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
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private prevWndProc As Long
Private Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_COPY Then
Else
WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
End If
End Function
Sub DisableCopy(TargetTextBox As TextBox)
prevWndProc = GetWindowLong(TargetTextBox.hWnd, GWL_WNDPROC)
SetWindowLong TargetTextBox.hWnd, GWL_WNDPROC, AddressOf WndProc
End Sub
--------------
然后再窗体代码中添加
Private Sub Form_Load()
DisableCopy Text1
End Sub
即可,text1是想要禁止复制的textbox 参考技术A Enable设为False就行了,但是不能选择了。
如果要选择,我则不太清楚。 参考技术B textbox 的enabled 属性设为fals 参考技术C 很简单,把locked属性设为false就行了。 参考技术D Locked属性并不妨碍复制啊
遮蔽CTRL+C键以及系统菜单就行了 第5个回答 2008-08-07 可以设置
TextBox的属性Enabled 为 False
或使用标签
Label1.BorderStyle = 1
Label1.BackColor = &HFFFFFF
此时标签的模样与TextBox相似,可以赋值给标签的属性Caption
vb.net如何运算一个字符串
比如在textbox1中输入1*5+3-6/2,建立一个botton1控件,点击,使”5“这个结果出现在textbox2中
调用 脚本解析引擎,
textbox2.text=Eval(textbox1.text).ToString()Function Eval(ByVal Expressions As String) As Double
Dim Mssc = CreateObject("MSScriptControl.ScriptControl")
Mssc.Language = "vbscript"
Return CDbl( Mssc.Eval(Expressions))
End Function
不喜欢上面提示的警告的话
textbox2.text=EvalString(textbox1.text)Function EvalString(ByVal Expressions As String) As String
dim oType = System.Type.GetTypeFromProgID("MSScriptControl.ScriptControl")
Dim o = System.Activator.CreateInstance(oType)
oType.InvokeMember("Language", System.Reflection.BindingFlags.SetProperty , Nothing, o,New Object() "vbscript")
Return oType.InvokeMember("Eval", System.Reflection.BindingFlags.InvokeMethod, Nothing, o, New Object()Expressions).ToString()
End Function
Eval 在VB中使用,刚找到的_vb吧_百度贴吧
http://tieba.baidu.com/p/967893260
参考技术A 在按钮里面设置程序 当按下按钮时候 tetx2显示text1的东西 参考技术B 如果是windows电脑,调用vbs即可。如果要移植,那就自己写。用栈。 参考技术C 复合运算需要你自己去写算法以上是关于vb TextBox 禁止复制的主要内容,如果未能解决你的问题,请参考以下文章
vb6.0 textbox2怎么显示不出来数据,换成 textbox1就可以了呢