Textboxen laden dauert gefühlt ewig?

  • VB.NET

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

    Textboxen laden dauert gefühlt ewig?

    Huhu,

    Habe heute ein etwas anderes Problem, bin mir hierbei nicht sicher ob es irgendwie an dem Code liegt oder das allgemein mit Vb.net zu tun hat.

    Ich habe letzdin bereits einen Thread eröffnet wo ich fragte wie man bestimmte dinge ausliest und wieder schreibt soweit hat auch alles geklappt, es funktioniert alles.

    Jedoch hat meine Form nun 40 Textboxen, dazu gehören auch 40 Label, sonst befinden sich noch 9 Buttons und 2 Pictureboxen (ca 16x16) auf der Form.

    Die Form muss man jedoch von Form 1 aus erst aufrufen damit man diese sieht (Form2.load). Sobald man also den Button drückt wird die Form geladen.

    Jedoch dauert es so um die Blume rum 2-4 Sekunden bis er alles geladen hat. Da wo Textboxen/Labels und Buttons sind, ist es anfangs Transparent.

    Der Style der Buttons sowie der Hintergrund der Form wird im Form_Loading event geladen. Der Hintergrund der Form wird sofort geladen und bevor die 40 Textboxen existierten wurden auch die Buttons sofort geladen.

    Seit hier aber die Textboxen und Labels sind statt einer großen Richtextbox lädt er eben ewig bis das ganze erscheint. (Nicht in VB.net sondern wenn man die .exe startet)

    Ich vermute einfach mal dass es nicht an meinem PC liegt, kurze specs: i5-6600k 4,1ghz overclocked, GTX 1050Ti Overclocked, 8GB DDR4 Ram 3200mhz overclocked. Würde mich wundern wenn der PC sonst alles hinkriegt und hier an Textboxen versagt.

    Muss ich eventuell etwas ändern? Liegt es am Code oder an VB.net selbst?

    Achja bevor ich es vergesse: Das auslesen welches ich im letzten Thread erfragte findet ebenfalls im Form_loading event statt sodass beim aufrufen der Form auch die Textboxen gefüllt sind. Liegt es eventuell daran?

    Ich bedanke mich schonmal im Vorfeld und hoffe ihr könnt mir hilfreiche Tipps geben.

    Grüße
    Hallo

    Da wir weder genau wissen wie du ausliest noch ob etwas anderes im code gemacht wird müssten wir unsere Glaskugel befragen.

    Dennoch: Ich glaub in winForms gibt es in der Form klaase das Propertie DoubleBuffert oder so welches du auf true setzen könntest. Das wird vieleicht etwas helfen.
    Dennoch denke ich das du beim auslesen der Daten den Flaschenhals hast.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Nunja im Form_loading code steht wirklich nur das auslesen drinne sowie das laden der Bilder / Hintergründe von Buttons, Form und Pictureboxen (my.resources) den Thread wo es um's auslesen geht habe ich oben ja verlinkt. Das eben 40x und man hat schon das was im Code steht hehe ^^

    Habe gerade doublebuffered angestellt, es ist nen Tick schneller, aber ich glaube du hast recht und es liegt wirklich am auslesen... grml dachte dass es nicht zwingend das ist ^^ Ich probier das ganze mal in einen Timer zu packen und diesen dann im loading starten, eventuell behebt es das Problem. Schade habe gehofft dass es nicht das ist ;D Naja mal sehen, eventuell ist es ja das, wenn nicht steh ich vor einem Rätsel ^^

    Edit: Am Auslesen liegt es definitiv nicht. Im Form_loading steht nun nichts weiteres mehr drin außer dass er die Bilder laden soll, das war vorher auch kein Problem demnach schließ ich das mal aus. Timer habe ich auf 10 Sekunden angesetzt, jedoch lädt er trotzdem noch ewig. Vermute also dass es nicht am auslesen liegt :/ Problem besteht also weiterhin

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

    Flauschi schrieb:

    Ich probier das ganze mal in einen Timer zu packen und diesen dann im loading starten, eventuell behebt es das Problem.

    Nein, das behebt nichts, wenn überhaupt umgeht es das Problem!! Wenn der Motor meines Wagens nicht mehr gut läuft behebe ich das Problem auch nicht indem ich nur noch in 30er Zonen fahre.

    Flauschi schrieb:

    Am Auslesen liegt es definitiv nicht. Im Form_loading steht nun nichts weiteres mehr drin außer dass er die Bilder laden soll

    Und das kannst mit gewissheit sagen?
    Beispiel: Ich lese aus einem file Informationen für 40 Textboxen aus. Ich habe schon gesehen das Leute hier 40 mal die Datei aufmachen und den Wert aus dem File ziehen anstatt 1 mal zu öffnen und alle Wert auf einmahl auszulesen. Dies wäre solch ein Flaschenhals. Also..... du bist dir wirklich sicher???

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    VB.NET-Quellcode

    1. ​Dim readfile() As String = IO.File.ReadAllLines(path & "\config.cfg")
    2. TextBox2.Text = readfile(5)
    3. If TextBox2.Text.Contains("=") Then
    4. TextBox2.Text = TextBox2.Text.Split("=")(1)
    5. End If


    Ab da wiederholt sich dieser Code noch 39 mal:

    VB.NET-Quellcode

    1. TextBox2.Text = readfile(5)
    2. If TextBox2.Text.Contains("=") Then
    3. TextBox2.Text = TextBox2.Text.Split("=")(1)
    4. End If


    (Natürlich jedesmal etwas abgeändert, für das jeweilige was es auszulesen gilt) Demnach gehe ich mal davon aus dass ich die Datei nicht 40x öffne, zumindest hoffe ich das hier an dieser Stelle, falls doch liegt es wohl daran, dann kann ich da vorerst nichts ändern und leb erstmal mit der Ladezeit, das ganze umzuschreiben sodass er alles einmalig in eine richtextbox schreibt und von dort in die Textboxen auszulesen ist mir dann vorerst doch etwas zu viel Coding, bin eigentlich so zufrieden da er das ganze ja so macht wie es soll, dann nehm ich da die Ladezeiten hin.

    Dennoch wundert es mich da ja nichts mehr im Loading ausgelesen wurde sondern lediglich im Timer, also sollte er zumindest die "rohen" Textboxen und Labels doch direkt laden oder etwa nicht? ^^
    @Flauschi Da wir gerade von INI-Dateien geredet haben, auch wenn deren Name auf .CFG endet, stufe ich Dich mal als beratungsresistent ein. X(
    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!

    Kenaex schrieb:

    Du hast also für jede Zeile und Textbox diese Zeilen Code geschrieben? 40 mal?
    Such mal nach For Each


    Ja habe ich, an For Each habe ich nicht gedacht, hmm guter Tipp, danke! :)

    @RodFromGermany Ich weiß, dumm in der Birne bin ich noch lange nicht ^^ Ich habe aber auch geschrieben dass es so funktioniert, wieso sollte ich also ein System verändern welches ansich gut funktioniert? Das wäre mehr Arbeit als nötig. Zumal "config.cfg" noch immer nur ein BEISPIEL war, die auszulesene Datei die ich wirklich verwende endet mit ".har44s" ist eine Randomendung und wird als stinknormale Textdatei angesehen, allerdings würde das bei einer Fragestellung etwas dämlich aussehen weshalb ich als Beispiel auch "config.cfg" verwendet habe.