禁止在TextBox中输入

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

作者:土人

方法一:(有光标闪烁,输入、删除等操作无效)

Text1.Locked = True

方法二:(无光标闪烁,不能输入、删除,界面变色、文字反白)

Text1.Enabled = False

方法三:(有光标闪烁,可删除,不能输入)

此法用两个API函数,略为复杂些。请在标准工程添加两个按钮和一个文本框:

Option Explicit

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

Const GWL_STYLE = (-16)

Const ES_NUMBER = &H2000&

Public Sub SetNumber(NumberText As TextBox, Flag As Boolean)

Dim CurrentStyle As Long, NewStyle As Long

'返回正常样式

CurrentStyle = GetWindowLong(NumberText.hwnd, GWL_STYLE)

If Flag Then

CurrentStyle = CurrentStyle Or ES_NUMBER

Else

CurrentStyle = CurrentStyle And (Not ES_NUMBER)

End If

'设置新样式

NewStyle = SetWindowLong(NumberText.hwnd, GWL_STYLE, CurrentStyle)

NumberText.Refresh '刷新

End Sub

Private Sub Command1_Click()

SetNumber Text1, True

Text1.SetFocus

End Sub

Private Sub Command2_Click()

SetNumber Text1, False

Text1.SetFocus

End Sub

Private Sub Form_Load()

Command1.Caption = "禁止输入"

Command2.Caption = "可以输入"

End Sub

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航