2012-04-19 183 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 = ...'上放置一个断点,它会在那里停止吗? – 2012-04-19 14:36:13

+0

有关结构的更多细节将有所帮助 - 这是一个窗体中的选项卡控件内的编辑框?或者是现在在表单上的用户控件的选项卡控件部分中的编辑框?等等? – 2012-04-19 14:38:43

回答

2

快速修复:

txtMsgDTG.Multiline = True 

其他固定在那里你可以保持Multiline = False是订阅到TextBox的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

太棒了。谢谢!我会很快在这里尝试,我会确认它。 – 2012-04-19 20:36:27

+0

不幸的是,这并没有奏效。还有什么想法? – 2012-04-27 15:52:10

+0

@LoganLehman你必须提供更多信息。我有一个TabControl与TabPage1中的文本框,当我在文本框中按[TAB]时,TabPage2被选中。 – LarsTech 2012-04-27 16:03:28

相关问题