Aktualisierung von Textboxen OHNE zusätzliche Items

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Koopa.

    Aktualisierung von Textboxen OHNE zusätzliche Items

    Hallo Leute - nun muss ich euch schon wieder nerven 8|

    Ich habe mittlerweile das auslesen und wiedergeben von ExcelFiles echt gut drin. Nun habe ich ein programm geskriptet, dass mir ein Excel File ausliest, Textboxen einfärbt und den Wert der eingefärbten Textboxen in einer Listbox wiedergibt.



    Nun habe ich allerdings folgendes Problem:
    Wenn ich meinen Button 1 das erste mal betätige geschieht folgender Code im Hintergrund:

    VB.NET-Quellcode

    1. If -Mein Excelfile-.range("Ziel").text = "leer"
    2. Then Textbox1.BackColor = Color.White 'Falls also "leer" in meinem File steht färbt er Weiss ein, sonst eben Orange.
    3. Else Textbox1.BackColor = Color.Orange
    4. If Textbox1.BackColor = Color.White Then Else ListBox1.Items.Add(-Mein Excelfile-.Range("1. Ausgabe").text + ":" + " " + -Mein Excelfile-.Range("2. Ausgabe").text)


    So. Wahrscheinlich ziemliches Chaos in meinem Code, das gebe ich zu, nun aber zum eigentlichen Problem:
    Wenn ich den Button1 nun ein zweites Mal betätigte, fügt er meiner Listbox den Eintrag erneut zu. Dieses soll er aber NICHT tun. Vielmehr hätte ich gerne dass er nun eher die Felder aktualisiert.
    Hat jemand eine Idee, wie ich das umschreiben soll? Eine Refresh Funktion oder soetwas in der Art finde ich in meiner Toolingauswahl leider nicht :(

    Ich hoffe jemand kann - und mag - mir nen kleinen Denkschubser geben, damit ich hier weiterkomme ;)

    viele liebe Grüße
    K00p4

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

    @VincenTB , irgendwann nervt es.
    Für 3-Zeilen Code postest Du einen unnötigen Hinweis.
    Wer diese 3-Zeilen nicht aufgrund der nicht richtig Editor- genutzten Tags lesen kann, beweist nur, dass diese ein Anfänger ist.
    Ausserdem ist dann ein Augenarzt zu konsultieren.
    [VB 2012] AddHandler mit variablem Eventhandler
    [VB 2010] My. Setting speichern
    [VB 2012] Download Async geht nicht?
    [VB 2010] txt beschreiben und wieder auslesen
    [VB 2010] Brauche hilfe beim Drucken

    Und,
    EDIT:[VB 2012] Direkt über zwei IP´s komunizieren(Internet)

    BTT:
    Ist es jetzt ein Peudo-Code, oder ist dieser Codeauschnitt auch in der Anwendungsumgebung, spricht im Orginal-Code zu sehen?
    Da fehlt wohlmöglich ein End If ...

    Mfg.eniking1998

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

    enIking1998 schrieb:

    Für 3-Zeilen Code postest Du, einen unnötigen Hinweis.

    Ich zähle fast 10 Zeilen Code, aber egal. Du findest es also unnötig, Leute auf einen Thread zum richtigen benutzten der VB-Tags hinzuweisen? Außerdem schadet dir ein Besuch bei Deutschnachhilfe nicht, denn wie du Kommas setzt hast du das sehr nötig. Die Zeilen sind also Anfänger, aha.

    @Koopa
    Ist deine Frage jetzt, wie du das ListBox Item veränderst? Wenn ja, kannst du den Index mit IndexOf ermitteln und dann musst du nur noch den Wert setzten. Guck dir diesen Code an:

    VB.NET-Quellcode

    1. If Not ListBox1.Items.Contains("Hallo Welt") The
    2. ListBox1.Items.Add("Hallo Welt")
    3. Else
    4. ListBox1.Items(ListBox1.Items.IndexOf("Hallo Welt")) = "WTF"
    5. End If


    EDIT: Aber schön, dass du deinen Text nochmal durchgegangen und Kommas an richtigen Stellen gesetzt hast :thumbup: (nungut, fast)
    Mfg
    Vincent

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

    Oh lol.
    Das sind mind. 5 Zeilen Code.
    Die Kommasetzungen sind schon richtig.
    Du solltest wissen, dass vor einem [oder], ist es der Fall, dass ein vollständiger Satz ist, ein Komma folgt.

    Das beweist Niveaulosigkeit und keine Ahnung zu haben.
    Wenn man einen Schwein in die Ecke drängt sche** er los, um jeden Preis, siehe Dich.

    Sry OffTopic.

    EDIT: "Vor", sorry, wurde aufgeregt.

    Mfg.eniking1998

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

    enIking1998 schrieb:

    Du solltest wissen, dass nach einem [oder] ein Komma folgt.

    Wenn, dann vor ;) Aber eigentlich kommt vor einem oder kein Komma (außer es gab einen Nebensatz davor, der da aufgehört hat).

    Aber ihr müsst beide eure Kommatasetzung überdenken, von daher... :P

    @TE
    Ich verstehe nicht wirklich, was du eigentlich willst und warum du zwei Mal das Gleiche abfragst.
    @Koopa:: also wenn du möchtest, dass man sich mit deinem Code auseinandersetzt, dann empfehle ich auch: Bitte VB-Tag benutzen - aber richtig

    Wassich gesehen habe, scheint mir nicht kompilierbar - aber ich kann mich auch irren.


    ErfinderDesRades - Moderator - Notiz:
    Und jetzt bitte keine weiteren Flamereien.
    Wie hier Begriffe wie "Anfänger", "niveaulos" und Zeugs verwendet wurden ist tendenziell beleidigend. Man kann auf derlei Inhalte verzichten, oder, wenn der Inhalt maßgeblich ist (es gibt ja Anfänger) sachlich formulieren
    huiuiui hier gehts ja zu (Am Satzende folgt ein Punkt).



    Also: was ich eigentlich möchte ist folgendes:
    Wenn ich meinen Button1 betätige liest er mein Excel File aus. Wenn er dabei auf einen Wert in einer .range bezogenen Spalte trifft. Färbt er eine Textbox ein um mir zu signalisieren dass in meinem File ein Eintrag gefunden wird.



    Im Anschluss daran prüft die Funktion des Buttons (immer noch im selben Programmablauf) nun die Textboxen auf Einfärbungen. Wenn er eine nun farbige Textbox findet, zieht er aus dem Excel File in den Nachbarspalten die erfoderlichen Daten in eine Listbox und Listet diese auf.



    Nun ist mein Problem dieses, dass wenn er mit dem Excel File fertig ist, alle relevanten Datensätze eingelesen, die Textboxen gefärbt und im Anschluss die erforderlichen Daten in die Listbox eingetragen hat, dass der Button bei einer zweiten Betätigung nun schliesslich die Datensätze erneut in die Listbox einträgt. Statt den nun angepeilten "5 Items" habe ich dann "10". Das möchte ich nun verhindern. D.h. ich möchte, dass via Buttonclick die Datensätze überprüft werden, und nur NEUERUNGEN eingetragen werden.



    Das ganze System bezieht sich auf ein Lagerprogramm das mir freie Stellplätze einfärbt und belegte in die Listbox einträgt.
    Aaaah ich hatte nen riesen Denkfehler drin :)
    Dankeschön für den hint ;)
    Gelöst hab ichs nun indem ich an den Anfang meines Quellcodes die Listbox mit

    VB.NET-Quellcode

    1. Listbox1.Items.clear


    leere und dann die leere Box wieder befüllen lasse :) Genial! Manchmal sind es die einfachsten Dinge die man nicht sieht x)