tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルENTERキー
記事No3987
投稿日: 2006/07/14(Fri) 19:46
投稿者WON
こんばんは
VB2005で、ENTERキーを押すと
TEXTBOX1 からTEXTBOX2に移る方法を教えて下さい。

VB6.0の時は、下記のように共通で使えるように
Form_KeyDownで書いていました。

'*********************************************************************************
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
       Call mSendKeys(vbKeyTab)
    End If
End Sub
'*********************************************************************************
Private Sub mSendKeys(KeyCode As Integer)
    Call keybd_event(CByte(KeyCode), 0, 0, 0)
    Call keybd_event(CByte(KeyCode), 0, 2, 0)
End Sub

同じようなことを2005でもしたいのですが...

宜しくお願いします。

[ツリー表示へ]
タイトルRe: ENTERキー
記事No3988
投稿日: 2006/07/14(Fri) 20:19
投稿者魔界の仮面弁士
> VB2005で、ENTERキーを押すと
> TEXTBOX1 からTEXTBOX2に移る方法を教えて下さい。

フォームに、以下の記述を加えてみてください。

Protected Overrides Function ProcessCmdKey( _
      ByRef m As Message, ByVal KeyData As Keys) As Boolean
  If KeyData = (Keys.Return Or Keys.Shift) OrElse KeyData = Keys.Return Then
    MyClass.SelectNextControl(Me.ActiveControl, KeyData And Keys.Shift, True, True, True)
    m.WParam = IntPtr.Zero
  End If
  Return MyBase.ProcessCmdKey(m, KeyData)
End Function


この場合、Enter / Shift + Enter がフォーカス移動に割り当てられているため、
複数行テキストボックスなどで改行するためには、Ctrl + Enter または Ctrl + J を使ってください。

# SelectNextControl メソッド、ProcessCmdKey メソッドについて調べてみましょう。

[ツリー表示へ]
タイトルできました
記事No3989
投稿日: 2006/07/15(Sat) 13:45
投稿者WON
 魔界の仮面弁士さん、ありがとうございます。

おかげで、できました。

こちらのサイトでも、お世話になりました。

[ツリー表示へ]