2012-04-19 21 views
1
ので

VB.NETテキストボックスのKeyDownイベントは、私はTabControlのページ上のテキストボックスを持っている

発射、およびされていません。私はUserControlから実際のフォームにフォームを切り替える前に、これは素晴らしい仕事をしていた。この変更によって実際のコードは変更されませんでした。

今、私はすべてを試しました。 AcceptTab = Trueに設定するテキストボックスがあり、KeyPreview = False(フォームがテキストボックスの前にイベントを取得すると、想定しているものが混乱するため)。ここで

は、テキストボックスのために私のコードです:

Private Sub txtMsgDTG_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles txtMsgDTG.KeyDown 

    'check for tabbed out 
    If e.KeyCode = Keys.Tab Then 
     'If the user tabs into this field after filling out the necessary fields ... 
     If txtMsgDTG.Text = String.Empty Then 
      'If the user left the field BLANK ... 

      'Move to next page: 
      TabControl1.TabPages(0).Enabled = True 
      TabControl1.TabPages(1).Enabled = True 
      TabControl1.TabPages(2).Enabled = False 
      TabControl1.TabPages(3).Enabled = False 
      TabControl1.TabPages(4).Enabled = False 
      TabControl1.SelectedIndex = 1 

     Else 
      'If the user did NOT leave the field blank ... 

      'validate message DTG 
      Dim dtgCheck As String 
      dtgCheck = ValidateDTG(txtMsgDTG.Text) 
      If dtgCheck <> "valid" Then 
       MsgBox(dtgCheck) 
      Else 
       'Move to next page: 
       TabControl1.TabPages(0).Enabled = True 
       TabControl1.TabPages(1).Enabled = True 
       TabControl1.TabPages(2).Enabled = False 
       TabControl1.TabPages(3).Enabled = False 
       TabControl1.TabPages(4).Enabled = False 
       TabControl1.SelectedIndex = 1 

      End If 

     End If 

    End If 


End Sub 

任意のアイデアの男?

+0

イベントが実際に発生しませんか? 'if e.KeyCode = ...'にブレークポイントを置くと、そこに停止しますか? –

+0

構造の詳細が役立ちます - これはフォームにあるタブコントロール内の編集ボックスですか?または、フォーム上にあるユーザーコントロールのタブコントロール内のエディットボックスですか?等? –

答えて

2

クイックフィックス:

txtMsgDTG.Multiline = True 

あなたがMultiline = Falseを保つことができ、他の修正プログラムは、テキストボックスのPreviewKeyDownイベントをサブスクライブすることです:

Private Sub txtMsgDTG_PreviewKeyDown(ByVal sender As Object, ByVal e As PreviewKeyDownEventArgs) Handles txtMsgDTG.PreviewKeyDown 
    If e.KeyCode = Keys.Tab Then 
    e.IsInputKey = True 
    End If 
End Sub 
+0

素晴らしいです。ありがとう!私はすぐにここでそれを試し、私はそれを確認します。 –

+0

残念ながら、これは機能しませんでした。これ以上のアイデアは? –

+0

@LoganLehman詳細情報を入力する必要があります。私はTabPage1のテキストボックスでTabControlを持っていて、TextBoxのときに[Tab]を押すと、TabPage2が選択されます。 – LarsTech

関連する問題