Enter将焦点发送到另一个文本框但无法正常工作

时间:2016-01-01 10:03:04

标签: vb.net

好吧,我现在需要一个帮助,我通过继承textbox字段创建了自己的textboxex类,现在我遇到了一个问题..

我做的就是当文本框获得焦点时,它的颜色会发生变化,当它离开焦点时,颜色会变回白色。但是我对这个没有任何问题。

我也尝试添加一个输入事件,就像我按下回车键/返回键一样,焦点转到下一个文本框......

这是我的代码..

Public Class textboxex
Inherits TextBox

Private Sub TextBoxEx_Enter(sender As Object, e As EventArgs) Handles Me.Enter'This is for color and works fine
    Me.BackColor = Color.Cyan
End Sub

Private Sub TextBoxEx_Leave(sender As Object, e As EventArgs) Handles Me.Leave'This is for color and works fine
    Me.BackColor = Color.White
End Sub
 'Problem is with this below...
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}")
    End If
End Sub
End Class

现在我对textboxex_return sub有一点问题...

问题是当我启动表单时,焦点直接转到表单中的按钮。

在调试时,我发现每个文本框在获得焦点时会自动进入/返回键。

我试图处理不同的事件,如keydown,keypress,textchanged等,但不能这样做......

我不知道这件事是否可能,或者我必须写这个" e.keycode = keys.enter"在每个子... ...

Plz帮助plox ......!

2 个答案:

答案 0 :(得分:0)

该按钮具有较低的标签索引。 将第一个textbox1的选项卡索引更改为零,它将起作用。 如果它不适合你,你可以在表单加载中执行此操作。 Textbox1.focus() ☺

答案 1 :(得分:0)

1)你必须为此设置TabIndex。设置文本框的tabindex为1。 2)您也可以在设计页面中使用TabOrder。    ** - >菜单 - >查看 - >标签订单**    设置Tab顺序并检查它。 3)如果两个步骤都不起作用,则编码中的setFocus()。