按Enter键强制使用shift键

时间:2013-06-20 20:52:22

标签: wpf vb.net text-editor keyboard-events

我有一个窗口,我想在按下回车键时强制用户按下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键。只有当有人按下回车键时才会这样。

1 个答案:

答案 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