我为用户在每种形式的文本框上按ENTER时都使用Tab键的行为编写此代码,效果很好。
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
SendKeys.Send("{TAB}")
e.Handled = True
End If
但是,我需要编写一次代码,也许作为模块中的子代码或函数,所以不必为每种形式编写相同的代码。我检查了各种论坛,包括Detecting Enter keypress on VB.NET和Tab Key Functionality Using Enter Key in VB.Net但是我所得到的就是为每个文本框或每个单独的表单编写代码。有没有人尝试过用一个代码编写ALL或可能是应用程序的几种选定形式?如果是,请与我分享。为每种形式编写仍然适合我,但我需要利用OOP。谢谢
有很多方法可以实现,其中一种是创建自定义文本框用户控件
向项目添加控件非常容易,只需在解决方案资源管理器中右键单击您的项目-> Add-> User Control
为您的控件命名。 “ tabedtextbox”
向您的用户控件添加文本框控件
将代码放入UserControl的textbox1的keypress事件中
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
SendKeys.Send("{TAB}")
e.Handled = True
End If
End Sub
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9VbjR2Sy5wbmcifQ==” alt =“在此处输入图像描述”>
编译一次,以便使用新的用户控件更新整个项目。
转到您的表单并添加新的用户控件,您可以在“工具箱”面板中找到它。
运行程序,在每个文本框上按Enter键,您将看到TAB的行为。
如果您希望允许用户在文本框中按下Enter键,而不是按下特定按钮,您可以使用acceptbutton属性。一种使用它的好方法是在TextBox的Enter和Leave事件上更改属性。当用户在文本框内按Enter时,调用Button的Click事件。
尝试此代码:
Private Sub tbProject_Enter(sender As Object, e As EventArgs) Handles tbProject.Enter
Me.AcceptButton = bSearch
End Sub
Private Sub tbProject_Leave(sender As Object, e As EventArgs) Handles tbProject.Leave
Me.AcceptButton = Nothing
End Sub
Private Sub bSearch_Click(sender As Object, e As EventArgs) Handles bSearch.Click
'.... actions to perfom
End Sub