C# 控制enter键在WPF中的作用

C# 控制enter键在WPF中的作用,c#,wpf,c#-4.0,wpf-controls,enter,C#,Wpf,C# 4.0,Wpf Controls,Enter,我有一个搜索文本的RichTextBox,我希望能够控制选择文本时enter键的功能。我可以使用下面的if测试来调用我想要的方法,但我的问题是,当按下enter键时,该方法被击中,然后将文本移动到第二行,我希望能够在文本高亮显示时阻止这种情况发生 我测试以检查按下enter键时是否选择了文本 if (IsTextSelected == true) { btnSearch_Click(sender, null); } 您可以收听PreviewKeyDown事件,如: <RichT

我有一个搜索文本的
RichTextBox
,我希望能够控制选择文本时enter键的功能。我可以使用下面的if测试来调用我想要的方法,但我的问题是,当按下enter键时,该方法被击中,然后将文本移动到第二行,我希望能够在文本高亮显示时阻止这种情况发生

我测试以检查按下enter键时是否选择了文本

if (IsTextSelected == true)
{
   btnSearch_Click(sender, null);
}

您可以收听
PreviewKeyDown
事件,如:

  <RichTextBox PreviewKeyDown="RichTextBox_PreviewKeyDown"/>

您使用哪个事件处理程序检查按键?我相信如果您使用
PreviewKeyUp
,您可以进行搜索,然后在事件参数上设置
e.Handled=true
,这将阻止控件进一步处理按键。
private void RichTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Return)
    {
       // DO YOUR WORK HERE and then set e.Handled to true on condition if you want to stop going to next line//

        e.Handled = true;
    }
}