我有一个窗口,我想在按下回车键时强制用户按下shift键。当只按下一个键时,我可以很容易地取消该事件,但我真正想要的是当用户按下回车键时,它会作出反应,好像用户也按下了shift键。
有没有办法做到这一点。我必须使用KeyDown事件,因为显然我必须使用的控件没有按键事件
上下文非常简单。我必须使用已经定义的富文本框(我不喜欢它,但我不能这样做),我无法真正修改,当用户按下回车时会生成
标签但是用户按Shift-Enter时的标签。用户对此表示担忧,但不希望教会其用户使用Shift-Enter而不是Enter。
我现在的代码:
Private Sub F_EditeurRTF_PreviewKeyDown(sender As Object, e As System.Windows.Input.KeyEventArgs) Handles Me.PreviewKeyDown
If e.Key = Key.Enter AndAlso Not My.Computer.Keyboard.ShiftKeyDown Then
'Add code to simulate user pressing the shift key at the same time.
End If
End Sub
看来我的问题不明确。简单来说,我想“愚弄”我的编辑器,认为即使不是,也会按下shift键。只有当有人按下回车键时才会这样。
答案 0 :(得分:0)
我在这里做了一些假设,基于你问题中的一些细节,但请告诉我这是否是你要找的:
Private Sub RichTextBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyDown
If e.KeyCode = Keys.Enter Then
DoWork(e.Shift)
End If
End Sub
Private Sub DoWork(ByVal ShiftIsDown As Boolean)
If ShiftIsDown Then
MessageBox.Show("Shift Pushed")
'Do special work for the case when Shift + Enter is pressed
Else
MessageBox.Show("Shift Not Pushed")
'Do special work for the case when Enter alone is pressed
End If
End Sub