- 題名: テキストボックスのマルチライン入力について
- 日時: 2004/10/18 12:22:34
- ID: 6790
- この記事の返信元:
- (なし)
- この記事への返信:
- [6792] Re[1]: テキストボックスのマルチライン入力について2004/10/18 12:40:24
- ツリーを表示
KeyDown() イベントより前の段階で、やっとけば... Protected Overrides Function ProcessDialogKey(ByVal uKeyData As Keys) As Boolean Select Case uKeyData Case Keys.Enter uKeyData = Keys.Tab Case Keys.Enter Or Keys.Shift uKeyData = Keys.Tab Or Keys.Shift End Select Return MyBase.ProcessDialogKey(uKeyData) End Function # ただし、この実装をした場合は[Ctrl]+[Enter]で、 # MultiLineTextBoxの改行を表現することになります。
■No6792を修正(java.lang.Nullpoの記事) こっちでやるべきかな。 Private Sub FormMain_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles MyBase.KeyPress Select Case Asc(e.KeyChar) Case Keys.Enter Me.SelectNextControl(Me.ActiveControl, True, True, True, True) e.Handled = True Case Keys.Enter Or Keys.Shift Me.SelectNextControl(Me.ActiveControl, False, True, True, True) e.Handled = True End Select End Sub
■No6795に返信(Booさんの記事) > さっきから下記の Case文が理解できずにいます。 > 最初の Case Keys.Enter はEnterキーが押された時の処理ですが > 次の Case Keys.Enter Or Keys.Shift は何が押された時に処理されるのでしょうか? ごめんなさい、↓コレ間違ってます。 > Case Keys.Enter Or Keys.Shift > Me.SelectNextControl(Me.ActiveControl, False, True, True, True) > e.Handled = True KeyDown() イベントのKeyCodeじゃないのだから、こんな聞き方はできないですね。 すいません、ボケてました。 Private Sub FormMain_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles MyBase.KeyDown ' [Control] + [Enter]で改行を表現するため、Controlキーが押された場合は除外 If e.KeyCode = Keys.Enter AndAlso e.Modifiers <> Keys.Modifiers.Control Then ' TextBox上でだけ処理する場合は↓コメントアウト部分を外す 'If Me.ActiveControl.GetType().Name = "TextBox" Then Me.SelectNextControl(Me.ActiveControl, Not e.Shift, True, True, True) 'End If End If End Sub Private Sub FormMain_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles MyBase.KeyPress If Asc(e.KeyChar) = Keys.Enter Then e.Handled = True End If End Sub
分類:[.NET]
毎回、壁にぶち当たるたびに掲示板をのぞいてます!!
今回はテキストボックスのマルチラインで悩んでいます。
漢字で100文字まで入力可能な項目なんですが、改行キーで次の入力領域にフォーカスを移したいんです。
しかし、改行キーや↓矢印キーを押したと同時に、入力した文字が1行分下にずれたり、全部消えてしまったりします。
1行のテキストボックスを使っている時と同じような動きをしてくれる方法はないのでしょうか?
入力する人がオフコンに慣れていた人なので、出来ればEnterキーでフォーカスを次々と移していきたいのですが・・・
よろしくお願いします。