Vb.net 按Enter键后在文本框中显示文本
我想知道如何使用VB.net在按下enter键后在文本框中显示一些文本。我下面有一些代码,但我的代码不起作用。在我第一次按Enter键后,它会同时显示框1、框2和框3。注意,我有3个文本框Vb.net 按Enter键后在文本框中显示文本,vb.net,event-handling,Vb.net,Event Handling,我想知道如何使用VB.net在按下enter键后在文本框中显示一些文本。我下面有一些代码,但我的代码不起作用。在我第一次按Enter键后,它会同时显示框1、框2和框3。注意,我有3个文本框 Private Sub OnKeyDownHandler(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown, TextBox2.KeyDown, TextBox3.KeyDown Dim i As Short
Private Sub OnKeyDownHandler(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown, TextBox2.KeyDown, TextBox3.KeyDown
Dim i As Short
If e.KeyCode = Keys.Enter Then
Dim CurrentControl As Control = CType(sender, Control)
Me.SelectNextControl(CurrentControl, True, True, True, True)
For i = 0 To 2
txtBox(i).Text = "Box " + (i + 1).ToString
Next
End If
End Sub
我知道这看起来很简单,但我想不出任何办法来解决它。谢谢你抽出时间 首先,您显然需要删除i=0到2的
循环,因为它同时迭代所有文本框
然后有两种方法可以做到这一点:
方法1:从名称中提取数字
由于所有文本框的名称都以TextBox
开头,然后是其编号,因此可以通过删除TextBox
部分来提取编号:
If e.KeyCode = Keys.Enter Then
Dim CurrentControl As Control = CType(sender, Control)
Me.SelectNextControl(CurrentControl, True, True, True, True)
If CurrentControl.Name.StartsWith("TextBox") Then
CurrentControl.Text = "Box " & CurrentControl.Name.Remove("TextBox".Length)
End If
End If
方法2:从数组中文本框的索引中获取数字
虽然建议使用方法1,但也可以使用txtBox
数组获取文本框的索引:
If e.KeyCode = Keys.Enter Then
Dim CurrentControl As Control = CType(sender, Control)
Me.SelectNextControl(CurrentControl, True, True, True, True)
Dim Index As Integer = Array.IndexOf(txtBox, CurrentControl)
If Index > -1 Then
CurrentControl.Text = "Box " & (Index + 1)
End If
End If
当然,这意味着您必须在添加更多文本框时更新阵列。@izwanismail:很高兴我能提供帮助!祝你的项目好运!