2017-05-25 22 views
-2

我使用vb.net 2008構建應用程序。我有一個包含遠程設備IP地址的50個文本框的表單,如果ping設備正常,則文本框的背景顏色爲綠色,否則爲紅色。我用的是如果功能如下:如何減少50如果函數按For ... Next循環使用超過50個文本框?

Public Class Form1 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

     If My.Computer.Network.Ping(TextBox1.Text) Then 
      TextBox1.BackColor = Color.Green 
     Else 
      TextBox1.BackColor = Color.Red 
     End If 

     If My.Computer.Network.Ping(TextBox2.Text) Then 
      TextBox2.BackColor = Color.Green 
     Else 
      TextBox2.BackColor = Color.Red 
     End If 
     . 
     .’ The if functions of the Textbox3 to the Textbox49 
     . 
     If My.Computer.Network.Ping(TextBox50.Text) Then 
      TextBox50.BackColor = Color.Green 
     Else 
      TextBox50.BackColor = Color.Red 
     End If 

    End Sub 
End Class 

50文本框,我不得不使用50如果功能,因爲這使得代碼很長,你能不能幫我縮短代碼For ... Next循環。 謝謝你的幫助。

+0

這看起來像一個功能的工作。 – Carcigenicate

+1

編寫你認爲你應該的循環,然後如果它不起作用,我們可以幫助你修復它。如果你不知道如何編寫'For'或'For Each'循環,請閱讀這個主題。我們在這裏幫助您解決特定問題,而不是爲您編寫代碼。如果您還沒有嘗試寫代碼,那麼您還沒有遇到特定的問題。 – jmcilhinney

回答

0

謝謝您的幫助和建議,我解決我的問題與此代碼:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim tbArray() As TextBox = New TextBox() {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8, TextBox9, TextBox10, TextBox11, TextBox12, TextBox13, TextBox14, TextBox15, TextBox16, TextBox17, TextBox18, TextBox19, TextBox20, TextBox21, TextBox22, TextBox23, TextBox24, TextBox25, TextBox26, TextBox27, TextBox28, TextBox29, TextBox30, TextBox31, TextBox32, TextBox33, TextBox34, TextBox35, TextBox36, TextBox37, TextBox38, TextBox39, TextBox40, TextBox41, TextBox42, TextBox43, TextBox44, TextBox45, TextBox46, TextBox47, TextBox48, TextBox49, TextBox50} 
    Dim i As Short 
    For i = 0 To 49 

     If My.Computer.Network.Ping(tbArray(i).Text) Then 
      tbArray(i).BackColor = Color.Green 
     Else 
      tbArray(i).BackColor = Color.Red 
     End If 
    Next 
End Sub 

但另一個問題出現了,整個代碼需要大約35秒,我認爲這是一個相當長的時間。有沒有辦法減少代碼執行時間?

+0

如果您問這是一個問題,它將是[修改使用普通ping方法使用Async ping方法的VB.Net程序](https://stackoverflow.com/q/30400219/1115360)的副本。 –

相關問題