TABキーの入力チェックとフォーカスの移動制御について への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 YuO  (社会人) 投稿日時 2013/4/22 16:10:25
PreviewKeyDownのMSDNにあるとおり,
e.IsInputKey = True
と,「既定の動作を無視する代わりにそのキーが押されたことにする」という操作が必要です。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.previewkeydown(v=vs.100).aspx

MSDNにキーワードが書いてあるので,端から探す必要はないでしょうね。
投稿者 hori  (社会人) 投稿日時 2013/4/22 14:01:50
自己解決ですが、他で探してたら見つけました。

TextBox.Focus() 

のところを

Me.SelectNextControl(Me.ActiveControl, False, True, True, True)

にすればうまいこといけました。
お騒がせいたしました。

端から探せってか?
でも、おんなじように分からん人もいるでしょう?
投稿者 hori  (社会人) 投稿日時 2013/4/22 13:22:06
早速のご指南ありがとうございます。

試してみましたが

「SetFocus は System.Windows.Forms.TextBox のメンバーではありません」

となってダメでした。
ちなみに、使っているのは VB2010Express です。 すみません。
投稿者 たかくん  (社会人) 投稿日時 2013/4/22 12:59:47
こんにちは、TextBox1.SetFocus()でいけませんか?
投稿者 hori  (社会人) 投稿日時 2013/4/22 12:51:47
まいど、お騒がせいたします。

以前、るきおさまにお世話になりまして機嫌よくやっていたのですが
Form に TextBox1 と 2 を作って次のようなコードを書いて
----------------------
 Private Sub TextBox1_PreviewKeyDown(ByVal sender As Object, _
       ByVal e As PreviewKeyDownEventArgs) _
       Handles TextBox1.PreviewKeyDown
        If e.KeyCode = Keys.Tab Then
            If TextBox1.Text = "111" Then
                MsgBox("111")
                TextBox1.Focus()
            End If
        End If
    End Sub
----------------------
メッセージボックスに "111" を表示させても
フォーカスはテキストボックス2に移ってしまいます。

このようなとき、テキストボックス1にフォーカスを戻すには
どうすればいいでしょうか?。