Weder .Items noch .SelectedIndexChanged bei Listbox vorhanden!?



  • Hinter "EigAktualisieren" fehlen die Runden Klammern!



  • Ohne die Methode EigAktualisieren läuft das Programm ohne Fehler.

    Bleibt nur die Frage, warum die Listboxen nicht richtig funktionieren?

    (Ist es wirklich so, dass in InitializeComponent kein weiterer Code mehr reingeschrieben werden sollte? Ich dachte da soll alles rein, was zu Beginn des Programms halt erstellt werden soll!?)



  • Sascha schrieb:

    Hinter "EigAktualisieren" fehlen die Runden Klammern!

    richtig
    und genau aus diesem grund wird intellisense dir nicht alles zeigen
    intellisense macht hin und wieder probleme sobald im code vorher etwas nicht stimmt, und du hast den rumpf von "EigAktualisieren" nicht richtig
    dh der code tuts nicht - er wird vermutlich ein get oder set erwarten da es ohne die () wie ein property aussieht (obwohl nichtmal das wegen dem void)

    (Ist es wirklich so, dass in InitializeComponent kein weiterer Code mehr reingeschrieben werden sollte? Ich dachte da soll alles rein, was zu Beginn des Programms halt erstellt werden soll!?)

    schreib da nichts rein
    was zu beginn von dir erstellt werden soll gehoert in den ctor danach - direkt in die InitializeComponent rein kommt nichts - das wird sonst alles (irgendwann) ueberschrieben



  • Ich verstehe es echt nicht, ich habe jetzt den Code aus InitalizeComponent in die Ctor kopiert und jetzt gibt es bei den Listboxen Fehler:

    //Listbox Team1
                     listBoxTeam1.Items.Add(Schwertkämpfer.ToString());
                     listBoxTeam1.Items.Add(Pikenier.ToString());
    
                    //Listbox Team2
                     listBoxTeam2.Items.Add(Bogenschütze.ToString());
                     listBoxTeam2.Items.Add(Reiter.ToString());
    

    Und zwar immer hinter .Add und hinter .ToString gibt es die Fehler *Ungültiges Token "(" in Klasse, Struktur oder Schnittstellenmemberdeklaration.
    *

    Irgendwas scheint mit den Listboxen nicht in Ordnung zu sein.



  • Du hast es an die falsche Stelle kopiert.



  • Rhombicosidodecahedron schrieb:

    Du hast es an die falsche Stelle kopiert.

    Was gibt es denn da noch für "andere Stellen", wo der Code richtig aufgehoben ist?



  • Aus der Fehlermeldung lässt sich schließen, dass du den Code NICHT in den Ctor kopiert hast bzw. dort nicht an die richtige Stelle (nach InitializeComponent(); ).



  • Entweder hast du eine schießende geschweifte Klammer vorher mitkopiert oder zwischen zwei Funktion kopiert (was aus ersterem resultierert). Der Copiler denkt dein kopierter Code ist in deiner Klasse direkt drin und nicht in einer Funktion.

    So:

    public void Form1() //ctor : Ja, das ist der Konstruktor! 
    {
      InitializeComponent();
    
      listBoxTeam1.Items.Add(Schwertkämpfer);
    /*
    Kleiner Tipp am Rande - du brauchst keine ".ToString"-Methode:
    denn ListBox.Items können auch Objekte enthalten.
    So kannst du dann einfacher bzw. direkt über SelectedItems
    auf die Objekte zugreifen; Die ListBox selbst benutzt diese
    Methode um den Text des jeweligen Elements zu bestimmen. */ 
      listBoxTeam1.Items.Add(Pikenier);
    
                    //Listbox Team2
      listBoxTeam2.Items.Add(Bogenschütze);
      listBoxTeam2.Items.Add(Reiter);	
    }
    

    EDIT: Zeilenumbruch im Kommentar und bessere Formulierung



  • Rhombicosidodecahedron schrieb:

    Entweder hast du eine schießende geschweifte Klammer vorher mitkopiert oder zwischen zwei Funktion kopiert (was aus ersterem resultierert). Der Copiler denkt dein kopierter Code ist in deiner Klasse direkt drin und nicht in einer Funktion.

    So:

    public void Form1() //ctor
    {
      InitializeComponent();
    
      listBoxTeam1.Items.Add(Schwertkämpfer); /*Kleiner Tipp am rande - du brauchst kein ToString: denn ListBox.Items können Objecte enthalten. So kannst du dann direkt über SelectedItems auf die Objecte zugreifen und nicht nur die String; die Listbox items werden selbst ja auch nur über Object.ToString() "vertextet" */ 
      listBoxTeam1.Items.Add(Pikenier);
    
                    //Listbox Team2
      listBoxTeam2.Items.Add(Bogenschütze);
      listBoxTeam2.Items.Add(Reiter);	
    }
    

    Ich dachte in InitalizeComponent darf kein weiterer Code mehr rein!?



  • Bitte den Post darüber löschen, ich glaube es wird Zeit, schlafen zu gehen...



  • Also das war der Fehler:

    Ich dachte, dass dieser ganze Block

    public void Form1() //ctor
    { <-----
      InitializeComponent();
    
    ----> }
    

    zu InitalizeComponent gehört und nicht nur die runden Klammern. Und weil man ja in InitalizeComponent keinen Code mehr schreiben darf, habe ich den Code und diese geschweifte Klammer geschrieben.

    Sorry, sowas wird nicht wieder vorkommen. 😞



  • du redest viel ueber "runde klammern" - "geschweifte klammern" und auch dein ".XYZ ist nicht da" klingt alles sehr verdaechtig nach fehlenden programmierkentnissen #gg

    soll kein vorwurf sein, faellt mir nur auf


Anmelden zum Antworten