使用该SendMessage函数 Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long 该SendMessage 函数需要4个参数,如下所示: hwnd一个长整数值,它包含文本框控件的句柄。 wMsg一个长整数值,它包含被发送的消息,在这个例子里,是EM_SETREADONLY。 wParam一个整数值,如果它为True,则控件被设置只读标记,如果它为False,则删除控件的只读标记。 lParam一个长整数值,它应该被设置为0(EM_SETREADONLY不使用它)。 在程序运行了此SendMessage函数之后,将返回一个长整数值,指明调用成功(返回值非0)或是失败(返回值为0)。样例程序 该程序显示了如何防止用户编辑一个文本框控件中的内容 Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long Const WM_USER = &H400Const EM_SETREADONLY = (WM_USER + 31) call SendMessage(Text1.hwnd, EM_SETREADONLY, True, ByVal 0&)
建议用Label控件,
把BorderStyle设为1,
BackColor设为白色,
Appearance设为1。
这样可以完全满足你的要求。
这还不够满你的意啊?
^_^
or
text1.enabled=false
text1.TabStop=False
在Text_GotFocus()事件中编写代码:
Command1.SetFocus我仅能想出这样的办法而已。
Text2.SetFocus
End Sub
在text1得到焦点时使用这句: objet.setfoucs
1.Object.Enabled = False、完全禁用,当然不可以输入数据啦。
2.Object.Locked = True、用户不可以输入值
你选择吧
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long 该SendMessage 函数需要4个参数,如下所示:
hwnd一个长整数值,它包含文本框控件的句柄。
wMsg一个长整数值,它包含被发送的消息,在这个例子里,是EM_SETREADONLY。
wParam一个整数值,如果它为True,则控件被设置只读标记,如果它为False,则删除控件的只读标记。
lParam一个长整数值,它应该被设置为0(EM_SETREADONLY不使用它)。 在程序运行了此SendMessage函数之后,将返回一个长整数值,指明调用成功(返回值非0)或是失败(返回值为0)。样例程序
该程序显示了如何防止用户编辑一个文本框控件中的内容
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
Const WM_USER = &H400Const
EM_SETREADONLY = (WM_USER + 31)
call SendMessage(Text1.hwnd, EM_SETREADONLY, True, ByVal 0&)
Lock还是能得到焦点,不完美
问题其实已经解决,我只是想完美一点,谢谢!API的那个方法挺好玩,我马上试试看
text1.locked=true
鼠标右键粘贴还可以用,所以还应将鼠标右键变为灰色
Label1.BackColor = QBColor(15)
Label1.BorderStyle = 1
End Sub