DOBON.NET DOBON.NETプログラミング掲示板過去ログ

textbox1で入力してEnterでtextbox2へ

分類:[全般]

Textbox1で入力して Enterキーを押すとTextbox2へカーソルが移動して
入力出来るように作りたいのですが、出来るのかどうかもわかりません。
出来るようでしたら、教えて頂きたいです。
よろしくお願いします。
2003/08/20(Wed) 11:07:39 編集(投稿者)

text1のKeyPressイベントに下記のようなコードを加えてみたら駄目でしょうか?

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text2.SetFocus
End If
End Sub
いないなさん返事ありがとうございます。
Text2.SetFocus
の所で SetFocusはsystem.windows forms.textboxのメンバではありませんって
なってしまってうまくいきません。

わかりましたら 教えてください。
お願いします。
> Text2.SetFocus
> の所で SetFocusはsystem.windows forms.textboxのメンバではありませんって
> なってしまってうまくいきません。

う、そうですか、こっちは
VB6.0 SP5
Win2K SP4で確認したのですが、、、

VBのVersion、OSのVersionはいくつでしょうか?
OSはXPで VB.NET2003です。
■No397に返信(akiraさんの記事)
> Textbox1で入力して Enterキーを押すとTextbox2へカーソルが移動して
> 入力出来るように作りたいのですが、出来るのかどうかもわかりません。
> 出来るようでしたら、教えて頂きたいです。
> よろしくお願いします。

はじめまして、akiraさん。私も初心者でここではよく質問ばかりしております。
TextBox1での入力をした後に、TextBox2へ移動する方法ですが。。

Private Sub TextBox1_KeyDown(省略)Handles TextBox1.KeyDown
if e.KeyCode = Keys.Return then
TextBox2.Focus()
end if
End Sub

でどうでしょうか?間違っていたらすみません。

Windows2000(SP4) VS.NET 2003

> Private Sub TextBox1_KeyDown(省略)Handles TextBox1.KeyDown
> if e.KeyCode = Keys.Return then
> TextBox2.Focus()
> end if
> End Sub
>
> でどうでしょうか?間違っていたらすみません。
>
> Windows2000(SP4) VS.NET 2003
>
MASAさんありがとうございます。
教えていただいたやり方でやると
Private Sub TextBox1_KeyDown(省略)Handles TextBox1.KeyDown
最後のkeydownの所でメソッドtextbox1_KeyDownでイベントKeyDownを処理できません 指定されているシグニチャが異なります。となってしまいます。
if e.KeyCode
KeyCodeはsystem.eventArgsのメンバではありませんとなってしまいます。
■No407に返信(akiraさんの記事)
> Private Sub TextBox1_KeyDown(省略)Handles TextBox1.KeyDown
> 最後のkeydownの所でメソッドtextbox1_KeyDownでイベントKeyDownを処理できません 指定されているシグニチャが異なります。となってしまいます。
> if e.KeyCode
> KeyCodeはsystem.eventArgsのメンバではありませんとなってしまいます。

お疲れ様です。できないですか?おかしいですね。何だろ?えっと。。。
私がテストした状況を書きますね。
新しいプロジェクトの作成で、「TEST_KEY」としてプロジェクトを作成。
Form1にTextBox1とTextBox2を貼り付ける。
グローバール変数「KEY_NUM」を設定する。Dim KEY_NUM as Integerと。。。
それで下記のようにコードを書いて押されたキーのコードを取得します。

Private Sub TextBox1_KeyDown(省略)Handles TextBox1.KeyDown
KEY_NUM = e.KeyCode
End Sub

実行し、TextBox1にフォーカスがあって「A」キーを押す。

上記のEndSubにブレークマークをつけているので、「A」キーを押した瞬間に
デバックモードになり、ウォッチリストのKEY_NUMには65と言う数字が入っています。

と言った検証をして65と入れば、先ほどのTextBox1_KeyDownのコードを
前に書いたようにif....でやってあげるとFocusも移動しませんか?

新規作成した方法でも無理ならば、かじりたての私には説明できないかもしれないです。
すみませんが新規作成で試してみてください。

よろしくお願いいたします。
■No408に返信(MASAさんの記事)
> ■No407に返信(akiraさんの記事)
>>Private Sub TextBox1_KeyDown(省略)Handles TextBox1.KeyDown
>>最後のkeydownの所でメソッドtextbox1_KeyDownでイベントKeyDownを処理できません 指定されているシグニチャが異なります。となってしまいます。
>>if e.KeyCode
>>KeyCodeはsystem.eventArgsのメンバではありませんとなってしまいます。
>
KeyDownイベントを処理するには
「TextBox1_KeyDown(省略)Handles TextBox1.KeyDown」の省略されている部分が
重要です。

KeyDownイベントの場合
「KeyDown(ByVal sender As Object,
ByVal e As system.Windows.Forms.KeyEventArgs)」
となります。

これで、KeyDownイベントをひろって、その後の処理はMASAサンがいわれてる
やり方でいけると思いますが。
うまくできました。
みなさんどうもありがとうございました。
(省略)の部分が違ってたみたいだったので、konatuさんが教えてくれた
様にやったら出来ました。
ありがとうございました。
■No410に返信(akiraさんの記事)
> うまくできました。
> みなさんどうもありがとうございました。
> (省略)の部分が違ってたみたいだったので、konatuさんが教えてくれた
> 様にやったら出来ました。
> ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板