-1

我有一个窗口,我想强制用户在按下回车键时按下 shift 键。当只按下一个键时,我可以轻松取消事件,但我真正想要的是,当用户按下回车键时,它会做出反应,就好像用户也在按下 shift 键一样。

有没有办法做到这一点。我必须使用 KeyDown 事件,因为显然我必须使用的控件没有按键事件

上下文非常简单。我必须使用一个我无法真正修改的已经定义的富文本框(我不喜欢它,但我不能这样做),它会生成一个

用户按 Enter
时的标签,但用户按 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 键。这仅在有人按下回车键时才成立。

4

1 回答 1

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
于 2013-06-20T23:12:01.107 回答