- PR -

KeyEnter押下時、フォーカスの移動

1
投稿者投稿内容
友希
会議室デビュー日: 2003/06/23
投稿数: 12
投稿日時: 2003-06-30 17:47
こんにちは、ゆきです。

VB.netのWindowsフォームでKeyEnter押下時、
フォーカスの移動はどのようにして行えばいいのですか?
画面上にTextBoxを複数配置して、KeyEnterを
押下する度にTabIndexの順に移動していくという
方法です。
VB6.0では、確かKeyNextっていうのがあったような気がします。
できれば、FormのKeyDownイベントで一括して行いたいのですが…。
どなたか知ってる方がいましたら、教えて下さいね。
なな
ぬし
会議室デビュー日: 2003/06/22
投稿数: 659
お住まい・勤務地: 愛知県
投稿日時: 2003-06-30 18:27
確認していませんが...

Form.SelectNextControlメソッドはどうでしょう?
はぐれコ〜ギ〜
常連さん
会議室デビュー日: 2003/06/12
投稿数: 32
投稿日時: 2003-06-30 18:31
引用:
VB.netのWindowsフォームでKeyEnter押下時、
フォーカスの移動はどのようにして行えばいいのですか?



以前に同じような状況のスレッドがありましたのでご参考まで。

■EnterKeyでのカーソル移動
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4983&forum=7
りん
常連さん
会議室デビュー日: 2003/06/30
投稿数: 22
投稿日時: 2003-07-01 12:02
こんにちは。私もちょうど昨日この件で困っていて、以前のスレッドを参考にさせて頂きました。その時、私の場合だけかもしれませんが、正常に動作しませんでしたので、その点を一応記しておきます。
------------------------------------------------------------------
参考にさせて頂いたプログラム
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Enter Then
Me.SelectNextControl(sender, False, True, True, True)
End If
End Sub
------------------------------------------------------------------
画面には上からTextBox1・TextBox2、その下に並んで実行ボタン・キャンセルボタン・変更ボタンがあり、TabIndexは上から順に0〜4を設定しています。
しかし、TextBox1に文字を入力してEnterKeyを押すと、TextBox2へ移らずに変更ボタンに移るんです。。そして、TextBox2でEnterすると上のBox1へ戻ってしまうんです。
なぜだかはわからなかったので、仕方なく
Me.SelectNextControl(sender, False, True, True, True)
これの代わりに
Me.TextBox2.Select
このようにしました。
以上です。
なな
ぬし
会議室デビュー日: 2003/06/22
投稿数: 659
お住まい・勤務地: 愛知県
投稿日時: 2003-07-01 13:05
> Me.SelectNextControl(sender, False, True, True, True)

移動方向が後方になっているのが原因だと思います。

Me.SelectNextControl(sender, True, True, True, True)
でどうでしょうか?

# C#で試したところOKでした。
りん
常連さん
会議室デビュー日: 2003/06/30
投稿数: 22
投稿日時: 2003-07-01 14:15
>移動方向が後方になっている

ほんとだ、これだとできました!
後方というと、下にさがるのかと思っていました。
意味を取り違えていました。ご指摘ありがとうございます。


[ メッセージ編集済み 編集者: りん 編集日時 2003-07-01 14:16 ]
友希
会議室デビュー日: 2003/06/23
投稿数: 12
投稿日時: 2003-07-02 11:19
できました!!
ありがとうございました!!
KingBird
会議室デビュー日: 2004/04/14
投稿数: 3
投稿日時: 2004-04-14 19:06
C#でmyCtrlはUserControlを継承したユーザーコントロールのコントロールの場合、
前方に移動できますが、後方に移動できない。解決の方法は誰かがご存知でしょうか?
教えていただきませんか?

this.SelectNextControl(myCtrl, false, true, true, true);
1

スキルアップ/キャリアアップ(JOB@IT)