您要做的第一件事是将表单加载事件中的进度条最大值设置为您正在使用的文本框数。
Dim TextBoxNumber As Integer = 4
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ProgressBar1.Maximum = TextBoxNumber
End Sub
那么你需要做 2 个事件。
1. TextBox 进入事件。"Private Sub TextBox_Enter(sender As Object, e As EventArgs)"
2. TextBox TextChanged事件“Private Sub TextBox_TextChanged(sender As Object, e As EventArgs)”
然后将您要使用的所有文本框链接到事件。
在这些事件中,您将使用 Sender。
制作一个 Dim 并将发件人转换为类型 Textbox 以使用其属性。" Dim TextControl As TextBox = CType(sender, TextBox)"
在 Enter 事件中,您计算在文本框中输入的文本。
如果计数为 0,则将布尔值设置为 true,如果计数大于 0,则将布尔值设置为 False。
您将在 Text Change 事件中使用此布尔值。
Dim CheckTextBox As Boolean
Private Sub TextBox_Enter(sender As Object, e As EventArgs) Handles TextBox4.Enter, TextBox3.Enter, TextBox2.Enter, TextBox1.Enter
Dim TextControl As TextBox = CType(sender, TextBox)
If TextControl.Text.Count > 0 Then
CheckTextBox = False
Else
CheckTextBox = True
End If
End Sub
在文本更改事件中,您需要做一些事情。
1.使用if语句检查文本框是否为空。“只有当用户删除文本框中的文本时才会触发。”
因此,如果为空,请从进度条中删除 1 并将 CheckTextBox"Boolean" 设置为 True
“ProgressValue = ProgressValue - 1”
"CheckTextBox = True"
2.然后使用 ElseIf 来检查 CheckTextBox"Boolean" 是否为 True。
如果为 true,则将 1 添加到进度条并将布尔值设置为 false。
“进度值 = 进度值 + 1”
"CheckTextBox = False"
您需要将布尔值设置为 false,否则每次向文本框添加 somthing 时都会添加 25。
Dim ProgressValue As Integer
Private Sub TextBox_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged, TextBox3.TextChanged, TextBox2.TextChanged, TextBox1.TextChanged
Dim TextControl As TextBox = CType(sender, TextBox)
If TextControl.Text = "" Then
ProgressValue = ProgressValue - 1
CheckTextBox = True
ElseIf CheckTextBox = True Then
ProgressValue = ProgressValue + 1
CheckTextBox = False
End If
ProgressBar1.Value = ProgressValue
End Sub