TABキーの入力チェックとフォーカスの移動制御について
投稿者 たかくん  (社会人)
投稿日時
2013/4/22 12:59:47
こんにちは、TextBox1.SetFocus()でいけませんか?
投稿者 hori  (社会人)
投稿日時
2013/4/22 13:22:06
早速のご指南ありがとうございます。
試してみましたが
「SetFocus は System.Windows.Forms.TextBox のメンバーではありません」
となってダメでした。
ちなみに、使っているのは VB2010Express です。 すみません。
試してみましたが
「SetFocus は System.Windows.Forms.TextBox のメンバーではありません」
となってダメでした。
ちなみに、使っているのは VB2010Express です。 すみません。
投稿者 hori  (社会人)
投稿日時
2013/4/22 14:01:50
自己解決ですが、他で探してたら見つけました。
TextBox.Focus()
のところを
Me.SelectNextControl(Me.ActiveControl, False, True, True, True)
にすればうまいこといけました。
お騒がせいたしました。
端から探せってか?
でも、おんなじように分からん人もいるでしょう?
TextBox.Focus()
のところを
Me.SelectNextControl(Me.ActiveControl, False, True, True, True)
にすればうまいこといけました。
お騒がせいたしました。
端から探せってか?
でも、おんなじように分からん人もいるでしょう?
投稿者 YuO  (社会人)
投稿日時
2013/4/22 16:10:25
PreviewKeyDownのMSDNにあるとおり,
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.previewkeydown(v=vs.100).aspx
MSDNにキーワードが書いてあるので,端から探す必要はないでしょうね。
e.IsInputKey = True
と,「既定の動作を無視する代わりにそのキーが押されたことにする」という操作が必要です。http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.previewkeydown(v=vs.100).aspx
MSDNにキーワードが書いてあるので,端から探す必要はないでしょうね。
以前、るきおさまにお世話になりまして機嫌よくやっていたのですが
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にフォーカスを戻すには
どうすればいいでしょうか?。