@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

MaskedTextBoxのEnterキーでのフォーカス移動について

1
投稿者投稿内容
kureru
常連さん
会議室デビュー日: 2005/07/26
投稿数: 22
投稿日時: 2006-11-06 09:21
お世話になります。

VB2005のWindowsアプリケーションで、現在以下のことが解決できずに悩んでいます。
誰か原因をご存知の方がいらっしゃいましたら、教えていただけませんでしょうか。


FormにMaskedTextBoxとTextBoxをひとつずつ貼り付けます。
MaskedTextBoxのMaskを郵便番号にします。
MaskedTextBoxのValidatingイベントで、郵便番号が正しく入力されているかチェックし、
入力されていなければ、Cancelし、入力するのを促すメッセージボックスを出します。

その際、Tabキーでの標準のフォーカス移動のほかに、Enterキーでのフォーカス移動を実装してあり、
Tabキーの場合、何も問題なく、Cancel後再入力させることが可能なのですが、
Enterキーでの移動の場合、再入力する際、Maskが効かなくなる?状態になります。

以下作成したソースです。
自分のコーディングがどこか悪いのでしょうか?
誰かご存知の方がいらっしゃいましたら、教えていただけませんでしょうか。
よろしくお願いします。


Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Enter Then
Me.SelectNextControl(Me.ActiveControl, Not e.Shift, True, True, True)
End If
End Sub

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
If e.KeyChar = ControlChars.Cr Then
e.Handled = True
End If
End Sub

Private Sub MaskedTextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles MaskedTextBox1.GotFocus
Me.MaskedTextBox1.SelectAll()
End Sub

Private Sub MaskedTextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MaskedTextBox1.Validating
If Me.MaskedTextBox1.MaskCompleted = False Then
e.Cancel = True
MessageBox.Show("郵便番号を正しく入力してください")
End If
End Sub
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-06 09:40
引用:

kureruさんの書き込み (2006-11-06 09:21) より:

自分のコーディングがどこか悪いのでしょうか?


KeyDown イベントで e.Handled = True していないところですね。

コード:

    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If e.KeyCode = Keys.Enter Then
            Me.SelectNextControl(Me.ActiveControl, Not e.Shift, True, True, True)
            e.Handled = True
        End If 
    End Sub


ちなみに、私のサイトを参考にしたということであれば、すみません...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
kureru
常連さん
会議室デビュー日: 2005/07/26
投稿数: 22
投稿日時: 2006-11-06 10:18
無事解決いたしました。

じゃんぬねっとさんありがとうございました。
1

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