如果文本框已满,如何告诉文本框在下一个空文本框中输入数据

时间:2016-01-03 02:58:41

标签: vb.net

我将textbox1.text作为主要文本框。选择提交按钮时输入到textbox1.text的任何文本都应该将文本输入到下一个可用的文本框中,即textbox2.text,textbox3.text和textbox4.text。如何告诉vb.net如果textbox2.text已满,则将文本输入textbox3.text,如果textbox3.text已满,则将文本输入textbox4.text。这是我被卡住的地方。我还在学习更多关于vb.net的过程。

Private Sub SubBttn_Click(sender As Object, e As EventArgs) Handles SubBttn.Click
        If TextBox1.Text.Trim.Length > 0 Then
            TextBox2.Text = TextBox1.Text
            If TextBox2.Text.Trim.Length > 0 Then
                TextBox3.Text = TextBox1.Text
            End If
        End If
End Sub

2 个答案:

答案 0 :(得分:0)

您可以将文本框的文本长度与文本框的最大长度进行比较,如果它们匹配,则下一个

Private Sub TextBox1_TextChanged(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
    If TextBox1.TextLength = TextBox1.MaxLength - 1 Then
        TextBox2.Focus()
    End If
End Sub

一旦输入最后一位数字,这将把焦点切换到textbox2。

如果你想在按钮事件中使用它,那么就像上面一样,但没有- 1

如果您希望始终保持文本相同,请执行以下操作:

Private Sub SubBttn_Click(sender As Object, e As EventArgs) Handles SubBttn.Click
    If TextBox1.TextLength = TextBox1.MaxLength Then
        TextBox2.Text = TextBox1.Text
        TextBox2.Focus()
    End If
End Sub

您将为每个文本框重复相同的操作,例如:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If TextBox1.TextLength = TextBox1.MaxLength Then
            TextBox2.Text = TextBox1.Text
            TextBox2.Focus()
        End If
        If TextBox2.TextLength = TextBox2.MaxLength Then
            TextBox3.Text = TextBox2.Text
            TextBox3.Focus()
        End If
        If TextBox3.TextLength = TextBox3.MaxLength Then
            TextBox4.Text = TextBox3.Text
            TextBox4.Focus()
        End If
    End Sub

希望这有帮助!

答案 1 :(得分:0)

更紧凑的代码来完成这项工作

Private Sub btnsubmit_Click(sender As Object, e As EventArgs) Handles btnsubmit.Click

Dim LstTextBox As New List(Of TextBox) 'A list to contain text boxes excluding the main text box

LstTextBox.Add(TextBox2)
LstTextBox.Add(TextBox3)
LstTextBox.Add(TextBox4)

For Each Tbox As TextBox In LstTextBox

    If String.IsNullOrWhiteSpace(Tbox.Text) = True Then 'If text box is empty or contains white spaces

        Tbox.Text = TextBox1.Text 'Copies text from main text box
        TextBox1.Clear() 'Clears main text box
        Exit Sub

    End If

Next

End Sub