Scrollbar im Panel bring Anwendung / PC zum absturz

  • VB.NET
  • .NET 4.5

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Scrollbar im Panel bring Anwendung / PC zum absturz

    Hallo Forum,

    Ich bin auf ein Probelm gestossen das ich nicht lösen und mir auch nicht erklären kann.
    In meiner Hauptform habe ich lediglich eine Panel und erzeuge in diesem 1295 horizontal angeordnete Pictureboxen in der Größe 12x12. Das Panel ist auf Autoscroll gestellt somit erscheint auch zur Laufzeit die integrierte Scrollbar.
    Nun das Problem:
    Unter Windows 7 funktioniert alles einwandfrei. Jedoch unter Windows 10 stürzt die ganze Anwendung ab inkl Visual Studio und Windows selbst, sobald man schnell hin und her scrollt. Unter Windows 7 kann man scrollen soviel man will keinerlei Probleme.
    Ich habe dies nun auf verschiedensten Systemen getestet und das verhalten ist überall gleich. Ich weiß nicht woran das liegen könnte und habe auch keine Idee wie ich dem ganzen auf die schliche kommen kann da auch Visual Studio im Debugmodus mit abstürzt.
    Alles was ich sagen kann ist das die CPU Auslastung nie über 20 % steigt und reichlich Arbeitsspeicher frei ist. Entsprechend habe ich ein Ressourcenproblem ausgeschlossen.
    Der einzige Code in der Anwendung ist der der die pictureboxen zur Laufzeit beim Loadereigniss erzeugt. Frameworks die ich getestet habe sind 3.5 4 und 4.5 alle das selbe Problem.


    Für einen Tip währe ich sehr dankbar.

    Hier noch der Code

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load


    Dim LED(1295) As PictureBox

    For i = 0 To 1295
    LED(i) = New PictureBox

    With LED(i)

    .Name = "BOX" & i
    .Tag = i
    .Width = 16
    .Height = 16
    .Left = 1 + i * 17
    .Top = 10
    .BackColor = Color.Black

    End With
    Panel1.Controls.Add(LED(i))
    Next
    End Sub

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

    Willkommen im Forum.
    Öhm ... 1296 PicBoxes? Hui. Nuja, wer's braucht. Mein Win10-PC ist damit nach ca. 0,3 Sekunden fertig, ohne abzuschmieren. Probier doch mal, Dich langsam an die kritische Zahl ranzutasten. Geht eine PicBox? 10? 100? 250? 500 1000?

    btw: bitte CodeTags verwenden

    ##########

    Hab das Wichtigste vergessen. Das Scrollen X/
    Ja, da wird's wirklich übel. Der RAM-Verbrauch schießt in die Höhe, obwohl keine neuen PicBoxen mehr entstehen. Und irgendwann laggt das ganze heftig. Wenn ich das Programm dann beende, ist alles wieder gut. Mysteriös ...
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.

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

    @Crackerjack Ebenfalls Willkommen im Forum. :thumbup:
    Probiert unter W7-32 mit VS2010 - kein Problem.
    .AutoScroll auf True und los, nix passiert.
    @VaporiZed Bei mir oassiert RAM-Seitig gar nix.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Bei mir passiert es, wenn ich mit der Maus auf den Auswahlblock des Scrollbalkens gehe, diesen »packe« und jenen heftig hin- und herziehe. Ich häng hier nachher mal Screenshots dran.

    ##########

    Das Ganze vor dem Draggen:

    3,6 GB ausgelastet.

    Während ich den dunkelgrauen Positionsblock des Scollbalkens dragge, also die Maustaste unten lasse und die Maus bewege und so das Scrollen bewirke, steigt der RAM-Verbrauch schnell an. Einen Screenshot konnte ich mit der Drucktaste gar nicht mehr in der Zeit machen, es entstand ein leeres Bild. Nachdem ich die Maustaste losließ, hatte ich erstmal 3 Minuten Zeit, um mir nen Kaffee zu machen, da der PC nicht mehr ansprechbar war. Den Mauscursor konnte ich bewegen, aber sonst war keine Reaktion. Danach habe ich das Programm beendet und der RAM-Verbrauch normalisierte sich wieder.

    Zweifellos hätte ich das aus solange weiterdraggen können, bis der RAM vollgewesen wäre, aber ich wollte es nicht übertreiben.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.

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

    @VaporiZed Ich werd das mal zu Hause mit Win10-64 ausprobieren.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Hallo zusammen,

    erstmal danke für die Antworten. Und wie gesagt unter WIN7 32 und 64bit funktioniert das alles ohne Probleme. Nur unter Win10 nicht.
    Der Sinn und zweck des ganzen ist die Steuerung eines LED Streifens mit 1295 LED´s die einzeln farblich gesteuert werden können. Naja mein Kunde braucht sowas....
    Und das Programm dafür ist auch fertig nur das scrollproblem ist die letzte und scheinbar große Hürde. Sorry das mit den Codetags wusste ich nicht.
    Davon abgesehen das ich das Problem irgendwie lösen muss würde mich der Grund für das Problem sehr interessieren. Bis jetzt habe ich noch keine erfolg aber danke nochmal für die mithilfe.

    Crackerjack schrieb:

    Nur unter Win10 nicht.
    Kann ich nicht bestätigen.
    W10-64 mit VS2013 und VS2017 läuft das bei mir.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!

    Crackerjack schrieb:

    Wir er auch "gefressen"
    Nein.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    @Crackerjack Poste mal das Projekt (als ZIP, ohne bin- und obj-Verzeichnis).
    Erweiterte Antwort -> Dateianhänge -> Hochladen.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!