Schleife über gesamte Sub

  • VB.NET
  • .NET (FX) 4.0

Es gibt 49 Antworten in diesem Thema. Der letzte Beitrag () ist von markoh2603.

    @markoh2603 Du hast momentan 2 Listen statuslabels und host_arraylist, die zusammen gehören aber nix voneinander wissen.
    Ich würde die paarweise in eine Struktur tun und sie gehören dann einfach zusammen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    markoh2603 schrieb:

    dass die host_labels alle schön erstellt werden, die status-labels aber fehlen


    markoh2603 schrieb:


    VB.NET-Quellcode

    1. With host_label
    2. .Location = New Point(8, 30 * i + 20)


    markoh2603 schrieb:


    VB.NET-Quellcode

    1. With status_label
    2. .Location = New Point(8, 30 * i + 20)


    Merkst du was? Sie sind beide übereinander... Verschiebe die Statuslabels woanders hin.
    Erstell Dir einfach ein UserControl und platziere dort Deine Labels, wenn es schon auf diese Art und Weise sein muss. Die UserControls steckst Du dann am Besten in ein FlowLayoutPanel, so kannst Du Dir das Gefummel mit den Locations sparen.

    Im Großen und Ganzen ist Dein gesamter Code bestenfalls suboptimal.

    @markoh2603

    VB.NET-Quellcode

    1. Private host_arraylist As String() = My.Settings.Item("presenter").ToString().Split(";")


    Diese Zeile glaube ich Dir in Zusammenspiel mit OPTION STRICT ON nicht.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Danke White, ich hatte das am Anfang auch vermutet und mir auch angeschaut, nur gesehen habe ich es nicht *schäm*

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Function ping(ByVal host As String, ByVal status_label As Label) As Boolean
    2. 'Private Sub ping(ByVal host As String, ByVal status_label As Label)
    3. Try
    4. Dim Result As Boolean = My.Computer.Network.Ping(host)
    5. If Result = True Then
    6. status_label.ForeColor = Color.Green
    7. status_label.Text = "Online"
    8. Else
    9. status_label.ForeColor = Color.Red
    10. status_label.Text = "Offline"
    11. End If
    12. Catch ex As Exception
    13. status_label.ForeColor = Color.Red
    14. status_label.Text = "Offline"
    15. End Try
    16. End Function



    Ein Fehlerchen habe ich auch noch gefunden, wenn ein Host der einmal den Status online hatte, nicht mehr erreichbar war, änderte sich der Status nicht auf offline, aber so klappt das jetzt.

    @ SpaceyX Wie ich vorher schonmal schrieb, bin ich Anfänger und das merkt man auch (da bin ich mir sicher). Das der Code suboptimal ist, das glaub ich gern, ich denke aber einem Anfänger geht es nicht darum, optimalen Code zu produzieren sondern funktionierenden, was aber nicht heißen soll, dass man funktionierenden Code nicht optimieren sollte.
    Ich habe den gesamten Code so hier reinkopiert, wie er bei mir steht, nur die Kommentarzeilen mit altem Code oder Test-MsgBoxen weggelassen und wie du siehst, ist OPTION STRICT ON . VS 2010 meckert auch die von dir angefügte Zeile nicht an.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „markoh2603“ ()

    markoh2603 schrieb:

    Wie ich vorher schonmal schrieb

    Hab mir nur die letzten Beiträge halbwegs durchgelesen, hab das wohl nicht gesehen. Nix für ungut :)

    Trotzdem, Anfänger oder Profi. Du bist in der Lage, Labels zu erstellen, somit bist Du auch in der Lage, UserControls zu erstellen und dort wenigstens 2 Label zu platzieren, die dann logisch zusammen gehören. Auch sollte es für einen Anfänger kein Problem sein, diese UserControls dann in ein FlowLayoutPanel zu stecken. Ist im Grunde das Selbe, was Du atm schon machst. Ein weiterer Schritt könnte dann sein, auch die Ping-Funktion in das UserControl auszulagern. Ist alles keine Hexerei. Wenn Du Hilfe möchtest, dann zeige ich Dir das gerne.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    markoh2603 schrieb:

    überfordert
    Mach einfach mal zu jedem Schlagwort ein ganz kleines Testprojekt. Leg Dir die geordnet ab und iwann hast Du dann eine ansehnliche Snippetsammlung für alles mögliche, wo Du immer zugreifen kannst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich hab Dir mal ein Video erstellt, welches zeigt, wie man es machen kann. Es zeigt Dir, wie man ein UserControl erstellt, wie man es in Code anspricht. Es zeigt auch den Object-Orientierten Ansatz, wie man Methoden innerhalb dieses Controls kapselt. Auch wird gezeigt, wie man Ping-Requests asynchron ausführt, um ein Blockieren des Programms zu verhindern. Du kannst natürlich auch Deine Ping-Funktion verwenden, dies ist aber nicht optimal.

    Wenn Du Fragen hast => jederzeit.

    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Oh, ja mein Fehler (Post #35), in C# gibts hal { und } :s
    Und die Eventargs, weil ich die Signatur des Events nicht genau kannte.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Ist doch nicht schwer? Wenn ich dir da Zuschau in welcher Selbstverständlichkeit du das da schreibst, RESPEKT.

    Sieht wirklich gut aus und ist auch denk ich zumindest vom anschauen verständlich. OK ich versuch das mal umsetzen und melde mich anschließend nochmal. Ich geh mal davon aus, irgendein Fehlerchen werd ich schon machen.