Hallo,
ich habe folgendes Problem. Ich schreibe gerade ein Programm, welches
aus appsettings die hostnamen ausliest und diese in einer Groupbox
ausgibt. Dazu wird gleich der Online-Status der hostnamen mit ausgegeben
(als Labels innerhalb der Groupbox). Das Problem was ich gerade habe,
ist folgendes. Der Online-Status ist ja immer nur der Stand vom Start
des Programmes. Ich würde den Stand aber gern aller 30 sek.
aktualisieren. Dazu müßten ja nur die "Status-Labels" neu geladen
werden, aber irgendwie steh ich hier total auf dem Schlauch. Ob das
ganze über eine Schleife mit Backgroundworker oder über ein
Timer-Element realiert würde, wäre mir dabei gänzlich egal.
Hier mal der bisherige Code:
Ich bedanke mich schonmal.
MarkOH
P.S. Verwende VB 2010
ich habe folgendes Problem. Ich schreibe gerade ein Programm, welches
aus appsettings die hostnamen ausliest und diese in einer Groupbox
ausgibt. Dazu wird gleich der Online-Status der hostnamen mit ausgegeben
(als Labels innerhalb der Groupbox). Das Problem was ich gerade habe,
ist folgendes. Der Online-Status ist ja immer nur der Stand vom Start
des Programmes. Ich würde den Stand aber gern aller 30 sek.
aktualisieren. Dazu müßten ja nur die "Status-Labels" neu geladen
werden, aber irgendwie steh ich hier total auf dem Schlauch. Ob das
ganze über eine Schleife mit Backgroundworker oder über ein
Timer-Element realiert würde, wäre mir dabei gänzlich egal.
Hier mal der bisherige Code:
Quellcode
- Private Sub statusbox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- 'Klassenbibliothek presenter aufrufen
- Dim prog As New presenter.presenter
- Dim host As String = CStr(My.Settings.Item("presenter"))
- Dim liste As New ArrayList(host.Split(CChar(";")))
- Dim ls(liste.Count) As Label
- Dim ls2(liste.Count) As Label
- Dim result(liste.Count) As Boolean
- For i = 0 To liste.Count
- ls(i) = New Label
- ls2(i) = New Label
- ls(i).Name = CStr((liste(i)))
- ls(i).ForeColor = Color.Black
- ls(i).Text = CStr((liste(i)))
- ls(i).Location = New Point(8, 30 * i + 20)
- ls(i).Size = CType(New System.Drawing.Point(100, 20), Drawing.Size)
- Try
- result(i) = CBool(prog.ping(CStr(liste(i))))
- If result(i) = True Then
- ls2(i).ForeColor = Color.Green
- ls2(i).Text = "Online"
- End If
- Catch ex As Exception
- ls2(i).ForeColor = Color.Red
- ls2(i).Text = "Offline"
- End Try
- ls2(i).Name = CStr((liste(i)))
- ls2(i).Location = New Point(110, 30 * i + 20)
- ls2(i).Size = CType(New System.Drawing.Point(60, 20), Drawing.Size)
- statusbox.Controls.Add(CType(ls(i), Control))
- statusbox.Controls.Add(CType(ls2(i), Control))
- Next
- End Sub
Ich bedanke mich schonmal.
MarkOH
P.S. Verwende VB 2010