3

Ctrl+Enterで特定のアクションをトリガーする複数行のテキストボックスがあります。明らかに、Enterキーを押すと、テキストボックスに新しい行が作成されます。

ここで、2つの機能を逆にします。つまり、Ctrl + Enterで新しい行を作成し、Enterで特定のアクションをトリガーする必要があります。Ctrl-Enterで新しい行を作成する必要がある場合を除いて、すべて正常に機能します。

私はこの解決策を試しました: C#でキープレスイベントをプログラムで生成するにはどうすればよいですか? ただし、Enterキーの(プレビュー)Keydown / Upを上げると、Ctrlキーが押されたままになるため、テキストボックスで別のCtrl-Enterをシミュレートするだけで、効果がありません。

どんな助けでもいただければ幸いです。

4

2 に答える 2

4

これは、Ctrlキーが押されている場合でも、最終的にテキストボックスで「Enter」をシミュレートした方法です。

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 に答える