VB.net在每个循环后添加换行

时间:2015-08-18 18:32:33

标签: vb.net windows forms

所以我一直在尝试使用VB.net(Windows窗体)创建一个简单的Ping测试应用程序,该应用程序ping所选服务器并返回已用时间。我已经声明了一个ping地址的函数,然后使用一个按钮来ping服务器。问题是,每次ping时,它只会ping一次,因此只给出一个值。我想有一个单独的文本框,用户输入他们想要ping服务器的次数,以获得更准确的结果。

Public Class Form1

Public Function Ping(ByVal server As String) As String
    Dim s As New Stopwatch
    s.Start()
    My.Computer.Network.Ping(server)
    s.Stop()
    Return s.ElapsedMilliseconds.ToString
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim number As Integer = TextBox3.Text
    For i = 1 To number
        Try
            TextBox1.Text = Ping(TextBox2.Text) &  Environment.NewLine
        Catch
            MsgBox("Please enter a valid address", MsgBoxStyle.Critical, "Error")
        End Try
    Next
End Sub
End Class

我尝试使用循环重复该过程,然后将结果返回给用户的多行文本框。不幸的是,它仍然只会ping一次地址并且不会继续,除非再次单击ping按钮,但第一个值将替换为下一个值。我相信问题的原因是每次循环后应该有一个换行符并且我尝试使用Enviroment.Newline但问题仍然存在。有什么建议吗?

最后,我还想计算结果的平均ping,并期望添加所有ping值并除以ping的次数。我如何获得ping的结果并添加它们?

任何帮助都可以理解和解释任何拼写/语法错误。

1 个答案:

答案 0 :(得分:4)

在每个循环中,您更改TextBox1的值,而不是将新值附加到现有值。

或者,您也可以在开始循环之前清除TextBox1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim number As Integer = TextBox3.Text

    ' Clear previous results
    TextBox1.Text = String.Empty
    For i = 1 To number
        Try
            ' Append new result to existing ones
            TextBox1.Text.AppendText(Ping(TextBox2.Text) & Environment.NewLine)
        Catch
            MsgBox("Please enter a valid address", MsgBoxStyle.Critical, "Error")
        End Try
    Next
End Sub