- - PR -
複数行入力可能フィールドにてALT+ENTERで改行したい。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-17 00:38
複数行入力可能フィールドにてALT+ENTERで改行し、ENTERで次のフォーカス移動先にフォーカスを移動したいのですが、以下のようにしても上手くいきません。
ALT+ENTERで、入力されている文字列の途中で改行することは可能でしょうか。 ご教授よろしくお願いします。 Private Sub Txt複数行可能領域_KeyDown(ByVal sender As Object, ByVal KeyEventArgs As System.Windows.Forms.KeyEventArgs) Handles Txt複数行可能領域.KeyDown If KeyEventArgs.KeyValue = System.Windows.Forms.Keys.Return Then If KeyEventArgs.Alt = True Then Txt複数行可能領域.Text = Txt複数行可能領域.Text + vbCrLf Else Me.Txt次のフォーカス移動先.Focus() End If End If End Sub | ||||
|
投稿日時: 2004-03-26 00:08
まず、
If KeyEventArgs.KeyValue = System.Windows.Forms.Keys.Return については If e.KeyValue = System.Windows.Forms.Keys.Return の間違いでいいんですよね?又、その下のKeyEventArgs.Altについても同様ですが…。 そのつもりで話を進めます。 テキストボックスにおいて文字列の途中に文字列を挿入するには SelectedTextプロパティを使用します。 つまり、下記のようなコードになります。
ただし、このままでは、文字列の途中でEnterキーを押すと改行されてから、 フォーカスが移ってしまいます。従って、Enterを検出したら KeyPressイベントハンドラ内でKeyPressEventArgsのHandled プロパティをTrueに設定してやる必要があります。 |
1