必须单击按钮两次以使第二个事件发生vb

时间:2014-05-05 12:48:25

标签: vb.net

我有一个程序,当单击按钮时会生成密码。按钮的代码如下:

Private Sub generate_Click(sender As Object, e As EventArgs) Handles generate.Click
    Module1.firstname = firstnameb.Text
    Module1.surname = secondnameb.Text
    Module1.colour = colourb.Text
    Module1.dob = dobb.Text
    Module1.dod = dodb.Text
    Module1.password = ((Mid$(Module1.firstname, 1, 1)) & (Mid$(Module1.surname, 1, 1)) & (Mid$(Module1.colour, 1, 1)) & (Mid$(Module1.dob, 1, 1)) & (Mid$(Module1.dod, 1, 1)))

    Timer1.Start()
    If ProgressBar1.Value < 100 Then
        ProgressBar1.Value += 1
    ElseIf ProgressBar1.Value = ProgressBar1.Maximum Then
        passwordresultb.Text = Module1.password

    End If


End Sub

但是,我必须按两次按钮:一次用于进度条,第二次用于输入密码。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您需要在计时器Tick事件中移动整个If块。

答案 1 :(得分:0)

单击按钮时,将调用此方法一次。如果ProgressBar.Value小于100,则会增加。否则,文本框将使用密码进行更新。由于您使用If..ElseIf模式,因此每次调用只会发生其中一个。

根据提供的代码,您的意图不是很明确。我无法告诉你如何使用进度条,或者说是什么。但问题的根源是If..ElseIf语句。如果您只想在单击按钮时在文本框中显示密码,请删除ProgressBar位并更新文本框。

如果您希望自己的进度条更新为“最高”&#39;在显示密码之前,试试这个(我的VB有点生锈......但应该是这样):

While ProgressBar1.Value < ProgressBar1.MaximumValue
    ProgressBar.Value += 1
End While

passwordresultb.Text = Module1.password