Hallo zusammen,
ich hänge mal wieder bei etwas fest.
ich möchte mir über eine "LED" in meinem Programm anzeigen lassen, ob eine IP-Adresse in meinem Heimnetz verfügbar ist oder nicht.
Auf meiner Form habe ich ein Panel. Auf dem Panel habe ich 2 Pictureboxen genau übereinander liegen. In einer Picturebox habe ich ein Bild einer roten LED und in der anderen habe ich ein Bild einer grünen LED. Die Abfrage zu der IP lasse ich in einem Backgroundworker in einer Schleife laufen.
Wenn ich das Programm starte, dann läuft die Abfrage auch super und es blendet die rote oder grüne Picturebox ein. Wenn ich aber dann das zu abfragende Netzwerkgerät vom LAN trenne, dann bekommt mein Programm das auch mit, aber es zeigt mir dann nicht die rote LED an, sondern es ist einfach so, als wenn es keine Picturebox gibt.
Wenn die beiden Pictureboxen nicht übereinander liegen würden, dann funktioniert das ohne Probleme. Es soll aber so aussehen, als wechselt die LED die Farbe...
Könnt ihr mir weiterhelfen?
ich hänge mal wieder bei etwas fest.
ich möchte mir über eine "LED" in meinem Programm anzeigen lassen, ob eine IP-Adresse in meinem Heimnetz verfügbar ist oder nicht.
Auf meiner Form habe ich ein Panel. Auf dem Panel habe ich 2 Pictureboxen genau übereinander liegen. In einer Picturebox habe ich ein Bild einer roten LED und in der anderen habe ich ein Bild einer grünen LED. Die Abfrage zu der IP lasse ich in einem Backgroundworker in einer Schleife laufen.
Wenn ich das Programm starte, dann läuft die Abfrage auch super und es blendet die rote oder grüne Picturebox ein. Wenn ich aber dann das zu abfragende Netzwerkgerät vom LAN trenne, dann bekommt mein Programm das auch mit, aber es zeigt mir dann nicht die rote LED an, sondern es ist einfach so, als wenn es keine Picturebox gibt.
Wenn die beiden Pictureboxen nicht übereinander liegen würden, dann funktioniert das ohne Probleme. Es soll aber so aussehen, als wechselt die LED die Farbe...
Könnt ihr mir weiterhelfen?
VB.NET-Quellcode
- Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
- Do Until BackgroundWorker1.CancellationPending
- Dim host1 As New Net.NetworkInformation.Ping
- Dim reply1 As PingReply = host1.Send("192.168.1.74")
- If reply1.Status = IPStatus.Success Then
- Red_PictureBox.Visible = False
- Red_PictureBox.Enabled = False
- Green_PictureBox.Enabled = True
- Green_PictureBox.Visible = True
- Green_PictureBox.BringToFront()
- Label1.Text = "erreichbar" 'zu testzwecken ob die Abfrage auch wirklich läuft
- Else
- Green_PictureBox.Visible = False
- Green_PictureBox.Enabled = False
- Red_PictureBox.Enabled = True
- Red_PictureBox.Visible = True
- Red_PictureBox.BringToFront()
- Label1.Text = "NICHT erreichbar" 'zu testzwecken ob die Abfrage auch wirklich läuft
- End If
- Loop
- End Sub