抱歉,据我再次测试,这个程序在某些时候会出问题。所谓的某些时候就是指:我在一个普通文本框中迅速地按键,然后突然用鼠标点击经过这个程序处理过的文本框时,让它获得了焦点,这时,变量中就会记录下获得焦点之后的输入,但是,文本框中没有显示。我想,可能是文本框获得焦点后就可以获取KeyPress和KeyDown事件,但是在一段时间内它不会对输入作出响应。于是,我修改程序,害我增加了两个辅助变量。修正版如下:Dim Pws As String, Keya As Integer, Keyl As IntegerPrivate Sub TexPW_Change()Select Case KeyaCase 8, 46 If Keyl = 0 Then Pws = Left(Pws, TexPW.SelStart) & Mid(Pws, TexPW.SelStart + 2) Else Pws = Left(Pws, TexPW.SelStart) & Mid(Pws, TexPW.SelStart + Keyl + 1) End IfCase Else Pws = Left(Pws, TexPW.SelStart - 1) & Chr(Keya) & Mid(Pws, TexPW.SelStart + Keyl)End SelectEnd SubPrivate Sub TexPW_KeyDown(KeyCode As Integer, Shift As Integer)Keya = KeyCode: Keyl = TexPW.SelLengthEnd SubPrivate Sub TexPW_KeyPress(KeyAscii As Integer)Keya = KeyAscii: Keyl = TexPW.SelLengthSelect Case KeyAsciiCase Is < 0: KeyAscii = -24071Case 8Case 13: KeyAscii = 0Case Else: KeyAscii = 42End SelectEnd Sub

评论