Combo Box Items verarbeiten

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von sonne75.

    Combo Box Items verarbeiten

    Hi,

    erst mal ein Gutes Neues Jahr 2014!

    Nun zu meinem Problem, hehehe!

    Ich möchte alle Elemente einer Combo Box verarbeiten. Das hab ich wie folgt versucht:

    VB.NET-Quellcode

    1. For Each Name In cboSelectFiletypes.Items
    2. Next


    Damit erhalte ich aber die Fehlermeldung

    Quellcode

    1. Fehler 1 Eine Schleifensteuerungsvariable kann keine Eigenschaft und kein spät gebundenes indiziertes Array sein.


    Das verstehe ich nicht so richtig. Ich dachte "cboSelectFiletypes.Items" ist eine LISTE, die bestimmte Strings enthält. Offensichtlich ist meine naive Vorstellung falsch. Wie muss ich das also anstellen?

    LG
    Peter

    Peter329 schrieb:

    Ich dachte "cboSelectFiletypes.Items" ist eine LISTE, die bestimmte Strings enthält.

    Wie kommst du darauf, dass es Strings sind? Hast du mal Mauszeiger an ".Items" gehalten und geschaut, was für Typ angezeigt wird?

    Was willst du mit deinen Items überhaupt anstellen? Du hast sie ja von irgendwo geladen, warum kannst du sie nicht gleich da bearbeiten?

    Peter329 schrieb:

    Eine Schleifensteuerungsvariable

    Ist das, was bei dir "Name" heißt. Offensichtlich hast du hier für deine Variable einen Namen gewählt, der in dieser Form schon als Eigenschaft des aktuellen Objekts (Me, vermutlich die Form) existiert.
    So schön die Option Infer On auch ist (d.h. man muss Variablen nicht zwangsläufig mit ihrem Typ deklarieren, wenn der Typ aus der ersten Zuweisung ersichtlich wird), hier rächt sie sich, weil du Name ohne explizite Deklaration verwendest und der Compiler, da bereits eine Eigenschaft Name existiert, versucht diese als Kontrollvariable zu nutzen.

    Benutze einen anderen Variablennamen oder setze in deinem For Each Befehl ein As xxx hinter den Variablennamen, wobei du für xxx den korrekten Typ - z.B. String oder Object - angibst.

    VB.NET-Quellcode

    1. For Each Name As String In cboSelectFiletypes.Items
    2. '...
    3. Next

    Durch das As-Schlüsselwort teilst du dem Compiler mit, dass an dieser Stelle die Variable Name auf jeden Fall neu deklariert wurde. Für den Gültigkeitsbereich dieser Variablen (in diesem Fall der For Each-Block) überdeckst du damit allerdings eben auch die Name-Eigenschaft deiner Form, auf die du dann stattdessen mit Me.Name zugreifen müsstest - sofern du es wolltest.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.
    ok, das war natürlich eine blöde Idee von mir das Ding ausgerechnet "Name" zu nennen! Und natürlich sind das keine "Strings" sondern "Objects" ... also etwas allgemeineres als Strings.

    VB.NET-Quellcode

    1. For Each strFiletype As String In cboSelectFiletypes.Items


    Damit klappt das dann hervorragend! Danke!

    LG
    Peter