Alle leere Listbox Einträge -> .Text so ändern "Leer" statt ""

  • VB.NET

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

    Alle leere Listbox Einträge -> .Text so ändern "Leer" statt ""

    Hey,

    Ich habe eine Listbox voll mit items gefüllt.
    Ich muss jetzt alle leeren Einträge so umändern: "Leer"

    Soll einfach "Leer" ohne Anführungszeichen reinschreiben bei allen Namenlosen Einträgen....

    Kann mir bitte schnell jemand zeigen wie man das macht?
    Schon vieles versucht, immernoch nicht hignekriegt :(
    danke!

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

    SpaceyX schrieb:

    Hey,

    sind für Dich 5000, 500 oder eine ListBox voll mit Items, Strings oder von was reden wir hier?
    Jo vorhin verschrieben hatte statt 50, 5000 geschrieben^^
    Sry für die Verwirrung.

    Ist sowieso egal wie viele items drin sind, da sich beim coden eigl nix ändert...
    Was ich brauch ist eine einfache Funktion womit man alle string.empty Items in "Leer" umändert.

    Hoffe mir kann jemand helfen :(
    In erster Linie ist es doch naheliegend, dass man die Quelle entsprechend ändert, aus der die Daten stammen. Wie sieht Dein Datenmodell aus? Nur "blanke" Strings in eine ListBox stecken ist meist eine Sackgasse.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    SpaceyX schrieb:

    In erster Linie ist es doch naheliegend, dass man die Quelle entsprechend ändert, aus der die Daten stammen. Wie sieht Dein Datenmodell aus? Nur "blanke" Strings in eine ListBox stecken ist meist eine Sackgasse.
    Hatte da ganz am anfang was verwechselt und auch sofort wieder umgeändert im 1. Post. Bist leider zu schnell bei den Topics und kriegst halt alles sofort mit ^^
    Naja hab jetzt eine Listbox mit ca. 50 items. Erst bei listbox Klick (Item auswahl) kommt die Quelle ins spiel wo ich dann was in richtextbox und so reinlade aber hat jetzt nix mit dem thema zu tun.

    Was ich brauch ist einfach wie oben beschrieben eine funktion mit derm an alle string.empty items ermittelt und dann die durch "<Leer>" oder "Leer" ws auch immer umändert hauptsache man kann es in der Listbox sehen.


    Hatte es so versucht:

    VB.NET-Quellcode

    1. ListBox1.Items.ToString.Replace(String.Empty, "Leer")
    aber funktioniert leider nicht :(

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „SEX“ ()

    Wenn du dir die Hinweise ansehen würdest, die dir IntelliSense liefert, würdest du sehen, dass ListBox1.Items
    1. ReadOnly
    2. eine Collection
    ist.

    Das heißt, du kannst die .Items nicht direkt ändern und hast eine Liste, die du mit einer simplen For-Schleife durchlaufen kannst.
    code:

    VB.NET-Quellcode

    1. Dim i As Integer
    2. For i = 0 To ListBox1.Items.Count - 1
    3. If ListBox1.Items(i).ToString() = "" Then
    4. ListBox1.Items(i) = "Leer"
    5. End If
    6. Next


    Mit For To durch die items der listbox laufen, deren text prüfen und wenn einer empty ist, wir dieser zu "Leer" umbenannt! ganz easy ;)
    @SEX:: Mal das Gegenteil:
    Kommt die Situastion vor, dass leere (mit "Leer" befüllte) Items wieder "regulär" befüllt werden können / sollen?
    Dann hast Du ggf. ein Problem.
    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!