根据输入的数据设置进度条值?

时间:2014-11-07 15:27:02

标签: vb.net visual-studio-2010

如何根据表单上每个控件中输入的数据设置进度条值增加/减少?我的意思是,我正在使用多个控件,所以请选择一个示例[假设我有四个文本框,进度条最大值为100,当输入txt_1时,进度值必须增加到100/4 = 25,如果我从txt_1中删除数据,则值应减少为零。

对不起我的语言,我的英语不好。

任何人都可以帮助我,请.....谢谢。

1 个答案:

答案 0 :(得分:1)

您所做的第一件事就是将formload事件中的进度条设置为您正在使用的文本框数量。

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(发件人为对象,e为EventArgs)"
2. TextBox TextChanged事件" Private Sub TextBox_TextChanged(sender as Object,e As EventArgs)"

然后将您要使用的所有文本框链接到事件 enter image description here enter image description here

在这些活动中,您将使用发件人 制作一个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"布尔"到真   " ProgressValue = ProgressValue - 1"
  " CheckTextBox = True"

2.然后使用ElseIf检查CheckTextBox"布尔"是真的。
如果为true,则向进度条添加1并将布尔值设置为false " ProgressValue = ProgressValue + 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