Fehler: "Der Rückgabewert kann nicht geändert werden, da er keine Variable ist."



  • ich bin noch relativ neu in c#. ich will nun in einer windows-anwendung (vc# 2005) die lage eines steuerelements auf dem form ändern:

    Steuerelement.Location.X = 100;
    

    und der compiler meckert:

    Der Rückgabewert "System.Windows.Forms.Control.Location" kann nicht geändert werden, da er keine Variable ist.

    warum das? intellisense sagt, dass "Steuerelement.Location" vom Typ System.Drawing.Point und daher "Steuerelement.Location.X" vom Typ int ist. wo ist das problem?



  • Die Property 'Location' liefert Dir eine Kopie des Werts zurück, weil 'Point' ein Wertetyp ist. Daher kann man seine Komponenten nicht modifizieren. Die Lösung ist, einen neuen Punkt zuzuweisen:

    Steuerelement.Location = New Point(100, Steuerelement.Location.Y);
    

    Und keine Sorge, das ist recht effizient.



  • vielen Dank


Anmelden zum Antworten