希望单击一个按钮时能使SHIFT键失效,单击另一个按钮能恢复。

解决方案 »

  1.   

    我想你需要深入API函数才能做到。以下意见仅供参考:
    用GetKeyState检查shift键是否处于按下状态,再用SetKeyState或keybd_event设置其状态为up。具体实现方法我觉得也有些难。
      

  2.   

    如果仅仅在VB中屏蔽shift键,可以用如下方法:
    Private Sub Text1_KeyPress(KeyAscii As Integer) 
         If KeyAscii = vbKeyShift Then 
         KeyAscii = 0 
         End If 
    End Sub 
      

  3.   

    Sorry,刚才方法不对。
    Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As IntegerPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
       If KeyCode = vbKeyShift Then
          Text1.Locked = True
       End If
    End SubPrivate Sub Timer1_Timer()
       If GetKeyState(vbKeyShift) >= 0 Then Text1.Locked = False
    End Sub
    这样当同时按下shift键时,键盘不能接受输入,释放shift键后正常。