我通过继承以下代码中显示的系统文本框创建了一个类。
Public Class textboxex
Inherits TextBox
Private Sub TextBoxEx_Return(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{TAB}")
Me.Text = Me.Text.ToUpper 'To change the text to upper case when it leaves focus.(working fine)
End If
End Sub
现在问题是当我按Tab键时,它不会进入if条件
可能它不会因为我没有给出tab键的条件。
但是在我通过添加e.keycode = keys.Tab并按Tab键更改了if条件之后,它不会执行字母的大写但输入就可以了。更新后的代码如下所示。
If e.KeyCode = Keys.Enter or e.KeyCode = Keys.Tab Then
SendKeys.Send("{TAB}")
Me.Text = Me.Text.ToUpper 'doesn't work when tab is pressed | enter works fine
End If
所以这是我的问题,帮助我plox ...... !!!!!!!
答案 0 :(得分:1)
使 Enter 像 Tab 一样工作
您可以覆盖ProcessCmdKey
方法并检查密钥是否为 Enter 然后,发送Tab键或使用SelectNextControl
,将焦点移至下一个控件:
Public Class MyTextBox
Inherits TextBox
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) _
As Boolean
If (keyData = Keys.Enter) Then
SendKeys.Send("{TAB}")
'Parent.SelectNextControl(Me, True, True, True, True)
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class