当用户在每个表单的文本框上按ENTER键时,我会为类似标签的行为编写此代码,这样可以正常工作。
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。感谢
答案 0 :(得分:0)
有很多方法可以实现这一点,其中一种方法是创建自定义文本框User Control
只需在解决方案资源管理器中右键单击项目,即可轻松地向项目添加控件 - >添加 - >用户控件
给你的对手一个名字。 “tabedtextbox”
将文本框控件添加到用户控件
将代码放在UserControl的textbox1的按键事件中
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
编译一次,以便使用新的用户控件更新整个项目。
转到您的表单并添加新的用户控件,您可以在“工具箱”面板中找到它。
运行程序,当您在每个文本框中按Enter键时,您将看到TAB的行为。
答案 1 :(得分:0)
如果您希望允许用户在文本框中按下Enter键,而不是按下特定按钮, 您可以使用接受按钮属性。 一种使用它的好方法是在TextBox的 Enter 和 Leave 事件上更改属性。当用户在文本框内按下Enter键时,您称为按钮的 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