我想做的是当用户在文本框中输入值并按ENTER
,等待ENTER
和*
之间的另一个输入。 如果他输入ENTER
做某事,如果他输入*
做其他事情。
文本输入>ENTER
键>ENTER
键>SUB1()
文本输入>ENTER
键>*
键>SUB2()
我无法以最佳方式执行此操作。
谢谢
不是~相当~确定我正在关注,但也许像下面这样的东西会让你到达你需要的地方。
Label1 让用户在按回车键时知道他们键入的内容是有效还是无效。 如果有效并再次点击 enter,则将其添加到 ListBox1(在您的情况下为网格)。 一旦输入,如果他们点击",那么它将进入"编辑"模式。 如果他们键入其他任何内容,则所有内容都将重置,键入">"将无助于任何操作。
Private EntryAdded As Boolean = False
Private ValidEntryMade As Boolean = False
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Label1.Text = ""
ValidEntryMade = False
End Sub
Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
If e.KeyCode = Keys.Enter Then
If Not ValidEntryMade Then
ValidEntryMade = IsValid(TextBox1.Text)
Label1.Text = If(ValidEntryMade, "Valid", "Invalid")
Else
ListBox1.Items.Add(TextBox1.Text)
TextBox1.Clear()
ValidEntryMade = False
EntryAdded = True
End If
End If
End Sub
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
If EntryAdded AndAlso e.KeyChar = "*" Then
e.Handled = True
TextBox1.Clear()
MessageBox.Show("Editing")
End If
EntryAdded = False
End Sub
Private Function IsValid(ByVal entry As String) As Boolean
' ... however you do this ...
Return (entry.Length = 6)
End Function