3

我有一个多行文本框, Ctrl+Enter 在其上触发特定操作。Enter 显然会在文本框中创建一个新行。

现在我想颠倒这两个功能,即 Ctrl+Enter 应该创建一个新行,Enter 应该触发我的特定操作。一切正常,除了我需要用 Ctrl-Enter 创建一个新行。

我尝试了这个解决方案: 如何在 C# 中以编程方式生成按键事件? 但是它不起作用,因为当我为 Enter 键提高 (Preview)Keydown/Up 时,仍然按下 Ctrl 键,所以我最终只是在文本框上模拟另一个 Ctrl-Enter,这没有任何效果。

任何帮助,将不胜感激。

4

2 回答 2

4

这就是我最终在文本框上模拟“Enter”的方式,即使按下 Ctrl 键:

var caretIndex = MyTextBox.CaretIndex;
MyTextBox.Text = MyTextBox.Text.Insert(caretIndex, System.Environment.NewLine);
MyTextBox.CaretIndex = caretIndex + 1;
于 2012-05-11T10:02:37.227 回答
1

如果你想真正模拟一些按键,而不仅仅是复制它的功能,你应该使用InputSimulator,它是一个很棒的开源库。模拟 Ctrl+Enter 如下所示:

InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.CONTROL, VirtualKeyCode.RETURN);
于 2012-05-11T10:16:29.513 回答