- 題名: テキストボックスのマルチライン入力について
- 日時: 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キーでフォーカスを次々と移していきたいのですが・・・
よろしくお願いします。