Items einer Checkedlistbox sind unsichtbar!

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Hanuta.

    Items einer Checkedlistbox sind unsichtbar!

    Hi,
    ich habe mal wieder ein merkwürdiges Phänomen: Meine Items in einer Checkedlistbox sind unsichtbar!

    Egal, ob ich sie in der IDE setze, oder per Code hinzufüge. Sie sind vorhanden, sehe ich ja auch am wachsenden Scrollbalken.
    In der IDE sehe ich noch die Einträge, zur Laufzeit wird nichts angezeigt.
    Per Code:

    VB.NET-Quellcode

    1. Trace.WriteLine(CheckedListBox1.Items.Add("aaaa", True).ToString)
    wird mir auch der Index des erstellten Items angezeigt.
    Aber ich sehe weder eine Checkbox, noch einen Text - rein gar nichts. Selektieren kann ich einen leeren Rahmen!

    Die Box auch schon neu erstellt mit Defaultwerten, Drawmode auch schon probiert - alles nix.

    Es ist eine .NET 5.0-Anwendung falls wichtig. Was soll das, jemand Ideen???
    Brauch' ich die?
    Ich hau mir in meine WinForms-.NET 5.0-App ne CheckedListBox und folgenden Code:

    VB.NET-Quellcode

    1. CheckedListBox1.Items.Add("Foo", True)

    Läuft. Wie sieht Dein Code aus? Arbeitest Du mit Threads/Tasks/allg. nebenläufig?
    Kannst Du mal bitte das Projekt ohne bin-, obj-, .vs- und .git-Ordner und gezippt über [+ Erweiterte Antwort] hochladen? Vielleicht finden wir so das Problem und eine Lösung.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Mhm, bei einem neuen Projekt funktioniert es bei mir auch, bei diesem aber nicht...
    Ich hab noch nie eins hochgeladen, ich hoffe es ist so überhaupt bei dir lauffähig, habe einiges rausgeworfen.
    Vielleicht doppelt gut dass ich es poste, kannst du mir evtl. auch die Fehlermeldungen im Direktfenster beim Start erklären, bzw. was ich da tun kann/muss?

    Und ja, es gibt einen Backgroundworker "BGW_PingCheck", auch die Sub "Network_StartListener()" in der incFunctions fällt unter nebenläufig denke ich.
    Dateien
    Brauch' ich die?
    @Hanuta Welche Bedingungen müssen erfüllt sein, damit Dein Programm ühaupt läuft?
    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!
    Ist nicht die Ursache, aber wenn man in Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles Me.Resize die Zeile If Me.WindowState = FormWindowState.Normal Then auskommentiert, klappt es bei mir.
    btw: vor dem Hochladen bitte immer testen, ob das von Dir gepackte Programm nach dem Auspacken immer noch lauffähig ist. Hier fehlt nämlich die Datei WOL.exe. Nach dem Auskommentieren des Bereichs (bzw. der betroffenen .Start()-Zeile lief es erst.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Sorry Leute, war ein ziemlicher Akt es zu veröffentlichen. Dazu gehört eigentlich meine erste selbst gebaute DLL mit DB-Funktionen mitsamt Passwort für FTP. Und auch die bei mir im LAN befindlichen Rechner mussten raus, sonst wäre nichts gelaufen. Die wol.exe verteile ich unabhängig von diesem Projekt, wurde bisher über ein CMD aufgerufen.

    @RodFromGermany - ich fürchte, du meinst auch die wol.exe?
    @VaporiZed
    Vielen Dank erstmal, dass du dir das Ganze so genau angeschaut hast! Ja, wenn ich die erwähnte Zeile heraus nehme, funzt es bei mir auch. Aber wieso in Dreiteufels....., das macht es für mich grad noch verwirrender?!

    Vielleicht doppelt gut dass ich es poste, kannst du mir evtl. auch die Fehlermeldungen im Direktfenster beim Start erklären, bzw. was ich da tun kann/muss?
    Einzelschritt: Nichtbenutzercode "Server_Management.My.MyProject.get_Forms" wird übersprungen.
    Einzelschritt: Nichtbenutzercode "Server_Management.My.MyProject.ThreadSafeObjectProvider.get_GetInstance" wird übersprungen.
    Einzelschritt: Nichtbenutzercode "Server_Management.My.MyProject.MyForms..ctor" wird übersprungen.
    Einzelschritt: Nichtbenutzercode "Server_Management.My.MyProject.MyForms.get_Frm_Management" wird übersprungen.
    Einzelschritt: Nichtbenutzercode "Server_Management.My.MyProject.MyForms.Create__Instance__" wird übersprungen.
    Brauch' ich die?
    Das ist ein .NET 5-Problem. In .NET-Framework 4.x funktioniert es. Es lässt sich auf Folgendes reduzieren. Sobald man Me.ShowInTaskBar auf False setzt, ist es aus. In einem frischen .NET 5-WinForms-VB-Projekt führt das hier schon in die Katastrophe:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'zuerst Button1 klicken - alles ok
    2. CheckedListBox1.Items.Add("Foo", True)
    3. End Sub
    4. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'danach Button2 und es ist vorbei
    5. Me.ShowInTaskbar = False
    6. End Sub
    Das Form scheint neu geladen zu werden und dann geht es mit der Anzeige den Bach runter.

    Ein Grund mehr für mich, erstmal bei .NET-Framework 4.x zu bleiben.

    Hab's mal bei Mikrosaft gemeldet …
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

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

    Moin,
    danke für deine Mühe! Dann haben wir ja schon mal die Ursache...
    Ich habe die Listbox jetzt rausgeworfen und auf ein DGV umgebaut.
    4.x geht leider nicht, zum einen findet er dort meine benötigte wol.exe nicht (Datei angeblich nicht vorhanden!), zum anderen bekomme ich dann ein False-Positive vom Kaspersky.
    Brauch' ich die?